2016-04-19 11 views
7

WAHT私が今やっている:ドッカー - 更新されたイメージを再構築してドッカークラウドにプッシュする適切な方法は何ですか?

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 . 

タグ付け:

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 

私は間違っていますか?

+0

ドッカーファイルで何か変更しましたか?そうしないと、ドッカーのビルドによって同じイメージが再構築されます(すべてが存在するため、非常に高速になります)。同じ画像をプッシュすると、レポは必要なレイヤーがすべて存在することを検出して何かを変更します。 – lvthillo

+0

@ lorenzvth7 Dockerfileは変更されませんでした。私は 'ADDでインポートするアプリケーションコードを変更しました。/www/' –

+0

www /フォルダ内のコードを変更した後に画像を再構築しましたか?それは必要なのだから。その後、新しいイメージにタグを付けてプッシュする必要があります。 – lvthillo

答えて

4

@ lorenzvth7のおかげで問題が見つかりました!

私は同じタグ(私は雲にプッシュしていた)を持つ2つの画像を持っています。

ソリューションは、次のとおりです。

  1. あなたのイメージを点検し、同じタグを持つ2つまたはそれ以上を見つける:

    docker images 
    
  2. はそれらを削除します

    docker rmi --force 'image id' 
    
  3. 厥それを!私の質問から上記の手順を実行します。
+3

これは本当に何かのために定期的に行われて重いです。私は何かが欠けているように感じる。 – sudo

関連する問題