强制docker组合推/拉



我有一个jenkins工作,它构建我所有的docker映像,并将它们推送到我的docker集线器。然后,它ssh到我想要部署的服务器,并运行dockercomposepull&docker整理。

出于某种原因,这种机制不能很好地处理docker中的更改。我更改了其中一张图片中的一项要求。我可以在jenkins中看到,它识别出了变化,并且没有在那个阶段使用缓存:

Step 16/33 : RUN ldconfig
---> Using cache
---> 15284e3997f6
Step 17/33 : ADD requirements.txt requirements.txt
---> 1c2d81548e55
Step 18/33 : RUN pip install -r requirements.txt
---> Running in 679034a149d4
Collecting alembic==0.9.5 (from -r requirements.txt (line 1))

您可以在这里看到,步骤16仍然使用缓存,而步骤17没有。正如预期的那样。

然后我推送图像:

-------------
Publishing Images
-------------
Pushing base (<docker-hub-server>/base:latest)...
The push refers to repository [<docker-hub-server>/base].

之后,我用ssh连接到服务器并提取图像。

问题是,由于某种原因,具有更新相关性的新图像没有被推送。

我尝试删除jenkins服务器和目标服务器中的所有容器和图像。

这感觉就像是缓存不正确。

我正在寻找一个解决方案,将强制将该图像推到回购或类似的东西。

编辑:

更多信息:

The push refers to repository [<docker-hub-server>/base]
9430005e84f9: Preparing
48e6dda22a29: Preparing
972483a80c7c: Preparing
a534cbaa9205: Preparing
23b2691ba244: Preparing
0f29e137999a: Layer already exists
b154080f7784: Layer already exists
0c7778ab05f8: Layer already exists
b2a1e0120631: Layer already exists
a597ec0005e2: Layer already exists
a5dc291ad4b4: Layer already exists
c54dfcd94152: Layer already exists
3415f7db917e: Layer already exists
0c01967aaa96: Layer already exists
7f969e99b7b3: Layer already exists
45652f92e451: Layer already exists
4acd815bd647: Layer already exists
72a531f31293: Layer already exists
b9624af892c1: Layer already exists
3c0dc8487715: Layer already exists
d54136b410c5: Layer already exists
cc349f2a25e3: Layer already exists
b8b4502cfe14: Layer already exists
a2bc3f3bafb5: Layer already exists
db067458dfa6: Layer already exists
ccec44bf5310: Layer already exists
a1ae7010d9f9: Layer already exists
03a6b6877a9b: Layer already exists
ef68f6734aa4: Layer already exists

签入jenkins后,正确的图像就在那里,但当我按下它时,它仍然显示所有层都已经存在,尽管步骤16、17已经更改。

在构建docker映像时使用--no缓存选项,并检查这是否解决了问题

最新更新