来自我的 PHP Dockerfile 的示例:
# Install composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
有了这个,我希望我的容器中有最新的作曲家版本。但是我有一些旧版本。当我执行 docker images
时,我发现我的 composer:latest
图像已过时:
composer latest 8f2928e1f548 8 months ago 176MB
所以我要做的是:
docker-compose pull --include-deps
docker-compose up -d --build --remove-orphans
但是,它只提取基本映像,而不是我通过 --from
依赖的映像。
有我监督的选项吗?或者我应该只需要一些特定的版本,比如 :2.0.13
?我看过一些关于 :latest
标签与它建议的不同的博客文章。
答案 0 :(得分:0)
:latest
标签的问题在于,它并不真正意味着您正在提取该映像的最后一次更新,只是他们标记为 :latest
的那个。
很多时候它的一些版本已经过时了,但它可能是最后一个稳定的镜像,所以如果你对镜像的版本没有任何偏好,使用最新的并不是一个坏主意。
答案 1 :(得分:0)
首先,您应该了解 --include-deps
仅适用于您在 depends_on
指令中设置的图像。不适用于多级。
对于您的情况,您可能应该在没有缓存的情况下构建图像。
docker build --pull --no-cache --tag myimage:version .
在推送到存储库之前
或者如果您在 docker-compose 文件中使用 build
docker-compose build --no-cache --pull