2016-04-19 22 views
7

Waht Ich mache jetzt:Docker - Was ist der richtige Weg, um ein aktuelles Image in Docker Cloud wiederherzustellen und zu pushen?

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 

Build-Befehl:

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

Tagging:

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

Pushing:

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

Nach diesen Schritten wurde das Repository-Image nicht aktualisiert. Ich bekomme immer die Meldung "Layer ist schon vorhanden".

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 

Was mache ich falsch?

+0

Haben Sie etwas in Ihrer Dockerdatei geändert? Andernfalls wird das Docker-Build das gleiche Image erstellen (das wird sehr schnell gehen, weil alles existiert). Wenn Sie das gleiche Bild drücken, erkennt der Repo, dass alle notwendigen Ebenen bereits vorhanden sind und alles ändert. – lvthillo

+0

@ lorenzvth7 Dockerfile hat sich nicht geändert. Ich habe den App-Code geändert, der mit 'ADD 'importiert wird./www/' –

+0

Haben Sie Ihr Bild neu erstellt, nachdem Sie den Code im www/Ordner geändert haben? Weil das notwendig ist. Danach musst du das neue Bild markieren und drücken. – lvthillo

Antwort

4

Ich fand das Problem, dank @ lorenzvth7!

Ich hatte zwei Bilder mit demselben Tag (die ich in die Cloud schob).

Lösung ist:

  1. Ihre Bilder Inspizieren und zwei oder mehr mit dem gleichen Tag finden:

    docker images 
    
  2. sie löschen:

    docker rmi --force 'image id' 
    
  3. Das ist es! Folgen Sie den Schritten von meiner Frage oben.
+3

Dies scheint wirklich schwerfällig für etwas, das regelmäßig getan wird. Ich habe das Gefühl, dass wir etwas verpassen. – sudo