web-dev-qa-db-fra.com

Docker - Quelle est la bonne façon de reconstruire et de pousser l'image mise à jour vers le cloud Docker?

Ce que je fais actuellement:

Dockerfile:

FROM python:3.5.1

ENV PYTHONUNBUFFERED 1

RUN mkdir /www
WORKDIR /www
ADD deps.txt /www/
RUN pip3 install -r deps.txt
ADD . /www/
RUN chmod 0755 /www/docker-init.sh

Commande Build:

docker build -t my-djnago-app:latest .

Marquage:

docker tag my-djnago-app:latest lolorama/my-djnago-app-img:latest

Poussant:

docker Push lolorama/my-djnago-app-img:latest

Après avoir suivi ces étapes, l'image du référentiel n'est toujours pas mise à jour. Je reçois toujours ce message - "La couche existe déjà".

The Push refers to a repository [docker.io/lolorama/my-Django-app-img]
fd5aa641b308: Layer already exists
d9c60c6f98e8: Layer already exists
d9d14867f6d7: Layer already exists
64ce166099ca: Layer already exists
73b670e35c69: Layer already exists
5f70bf18a086: Layer already exists
9ea142d097a5: Layer already exists
52f5845b1de0: Layer already exists
e7fadb3ab9d4: Layer already exists
cef72744de05: Layer already exists
591569fa6c34: Layer already exists
998608e2fcd4: Layer already exists
c12ecfd4861d: Layer already exists

Qu'est-ce que je fais mal?

23
Alex T

J'ai trouvé le problème grâce à @ lorenzvth7!

J'ai eu deux images avec le même tag (que je poussais vers le cloud).

La solution est:

  1. Inspectez vos images et trouvez-en deux ou plus avec la même balise:

    docker images 
    
  2. Supprime-les:

    docker rmi --force 'image id'
    
  3. C'est ça! Suivez les étapes de ma question ci-dessus.
20
Alex T

Une autre solution, bien que bruteforce, consiste à reconstruire avec l'indicateur - no-cache avant de pousser à nouveau.

docker rmi --force my-djnago-app:latest

docker build -t my-djnago-app:latest . --no-cache

docker Push my-djnago-app:latest
1
Timothy Perez