docker-compose一直使用旧的图像内容

时间:2017-06-09 15:01:20

标签: caching docker docker-compose

我们使用gitlab-ci使用最新版本的代码构建新图像。 这些图片是使用requestContext.abortWith( Response.status( Response.Status.UNAUTHORIZED ).entity( e.getMessage() ).type( MediaType.APPLICATION_JSON ).build() ); 标记构建的日常图像。 我们在发布过程中标记图像。

我的问题与latest标记有关。 我们会自动将这些图像部署到服务器上以测试我们的产品。

然而,在测试服务器上,如果我们提取最新的docker镜像(通过其校验和验证),请停止撰写并再次向上,我们有时仍然拥有旧图像的内容(例如配置文件)。 / p>

我们尝试latest,但没有用。

解决问题的唯一方法是: docker-compose up -d --force-recreate

有更好的主意吗?

4 个答案:

答案 0 :(得分:4)

我也在开发中遇到过这个问题。 docker-compose up使用旧图像,即使我已经构建了最新图像。如果我在最新图像中手动运行docker run,我可以看到新的更改。 对我来说固定的是:

docker-compose up --build <your-service>

希望它有所帮助!

答案 1 :(得分:4)

根据文档,您可以忽略前一卷中的数据:

docker-compose up -d --force-recreate --renew-anon-volumes

请参阅https://docs.docker.com/compose/reference/up/

答案 2 :(得分:3)

这个过程应该是:

docker-compose pull
docker-compose up

如果你有卷,那么那些将是持久的设计。如果您需要您的卷不持久,那么您可能需要重新考虑在卷中包含该数据,或者您需要在每次重新部署时使用docker-compose down -v重置卷以删除容器卷。

如果您仍然遇到此问题,请确保您的docker和docker-compose安装是最新的。

答案 3 :(得分:1)

你可以试试

docker-compose down --rmi all

https://docs.docker.com/engine/reference/commandline/compose_down/

相关问题