Docker - Что такое правильный способ перестроить и направить обновленное изображение на облако докеров?

Что я сейчас делаю:

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

Команда построения:

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

Tagging:

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

Нажатие:

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

После выполнения этих действий образ хранилища по-прежнему не обновляется. Я продолжаю получать это сообщение - "Слой уже существует".

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

Что я делаю не так?

Ответ 1

Я нашел проблему, благодаря @lorenzvth7!

У меня было два изображения с тем же тегом (который я толкал в облако).

Решение:

  • Осмотрите свои изображения и найдите два или более с тем же тегом:

    docker images 
    
  • Удалите их:

    docker rmi --force 'image id'
    
  • Вот оно! Выполните шаги из моего вопроса выше.

Ответ 2

Еще одно решение, пусть и bruteforce, состоит в том, чтобы перекомпилировать с флагом --no-cache перед повторным нажатием.

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

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

docker push my-djnago-app:latest