Compose: Ajouter une option sans cache à la construction docker-compose

Créé le 2 mars 2015  ·  13Commentaires  ·  Source: docker/compose

Ce serait utile si on pouvait le faire
docker-compose build service1 service2 --no-cache

Commentaire le plus utile

Je viens de réaliser que la syntaxe est
docker-compose build --no-cache service1 service2

Tous les 13 commentaires

Je viens de réaliser que la syntaxe est
docker-compose build --no-cache service1 service2

je cherchais ça !!

Voici ma façon propre de reconstruire ma pile de composition

cd (dans votre répertoire de composition)

 docker-compose rm --all &&
 docker-compose pull &&
 docker-compose build --no-cache &&
 docker-compose up -d --force-recreate &&

Avoir du sens ? Je recherche les meilleures pratiques ici :)

+1
Le --force-recreate est-il nécessaire ?

+1
Je pense que --force-recreate est le meilleur choix

--force-recreate n'est pas nécessaire, car tous les conteneurs viennent d'être supprimés.

Si vous voulez tout effacer, down est préférable à rm , car il peut également supprimer des volumes et des réseaux.

$ docker-compose down -h
Stops containers and removes containers, networks, volumes, and images
created by `up`.

By default, the only things removed are:

- Containers for services defined in the Compose file
- Networks defined in the `networks` section of the Compose file
- The default network, if one is used

Networks and volumes defined as `external` are never removed.

Usage: down [options]

Options:
    --rmi type          Remove images. Type must be one of:
                        'all': Remove all images used by any service.
                        'local': Remove only images that don't have a custom tag
                        set by the `image` field.
    -v, --volumes       Remove named volumes declared in the `volumes` section
                        of the Compose file and anonymous volumes
                        attached to containers.
    --remove-orphans    Remove containers for services not defined in the
                        Compose file

Je l'utilise depuis 3 mois et il répond parfaitement à mes besoins.
Je ne veux pas supprimer : les réseaux, les volumes et les images

        echo && echo "PikWi says: docker-compose stop" && \
    docker-compose stop && \
        echo "PikWi says: docker-compose rm ..." && \
    docker-compose rm -f --all && \    
        echo "PikWi says: docker-compose pull" && \
    docker-compose pull && \
        echo "PikWi says: docker-compose build ..." && \
    docker-compose build --no-cache && \
        echo "PikWi says: docker-compose up ..." && \
    docker-compose up -d --force-recreate --remove-orphans

Je serai heureux d'utiliser quelque chose de plus court ou de plus propre. Je suis tous les meilleurs pratiques :)

Acclamations!

--no-cache ne fonctionne pas.... quelle est l'alternative --force-rebuild continue d'utiliser le cache :(

@julianfrank Je ne sais pas ce que vous vouliez dire par --no-cache does not work mais peut-être que vous l'exécutez comme
docker-compose build SERVICE_NAME --no-cache
alors qu'il doit en fait être docker-compose build --no-cache SERVICE_NAME ?

Lorsque les étapes sont les mêmes pour les différents services en cours de construction, il utilise toujours le cache du conteneur qui vient d'être construit plus tôt dans le script... J'ai trouvé une alternative pour utiliser les mêmes étapes lorsque je veux utiliser le cache et changer l'ordre pour forcer le saut du cache usage...

si vous étiez foutu par le cache et que vous n'utilisiez pas de cache à la place, vous insérez de nouvelles commandes dans le fichier docker pour forcer le renouvellement de la couche de cache, envoyez un pouce levé, la gestion du cache dans docker nécessite un refactor ... ou fonctionne vraiment en nettoyant les couches de cache

En effet, ça ne marche pas...
Vous pouvez apporter toutes les modifications sur un Dockerfile pour un service, et il n'y a aucune réflexion sur docker-compose build --no-cache

docker-compose up -d --build --no-deps web reconstruira le conteneur pour le service nommé "web" dans votre docker-compose.yml. Une fois la reconstruction terminée, elle redémarrera le conteneur spécifié.

--no-deps limitera la reconstruction au nom du service spécifié dans la commande.

De plus, cette commande reconstruira le conteneur si vous copiez des fichiers dans le conteneur et que l'un des fichiers que vous copiez a changé - comme requirements.txt

pour votre information
docker-compose up --force-recreate --build

Il n'y a apparemment pas d'option --no-cache pour la commande up
On dirait que force-recreate n'utilise pas cette option. S'il vous plait corrigez moi si je me trompe!

Donc la meilleure approche serait que je fasse ça...

Commande de reconstruction de composition ultime pour moi

Supprime le conteneur et les images> construit des images sans cache de construction> docker-compose détaché> suivez les journaux (afin que vous puissiez en sortir ctrl+c )

docker-compose build --force-rm --no-cache && docker-compose up --detach && docker-compose logs -f

Les fenêtres:
docker-compose build --force-rm --no-cache ; docker-compose up --detach ; docker-compose logs -f

Cette page vous a été utile?
0 / 5 - 0 notes