首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头组合:检测图像是否需要重建。

码头组合:检测图像是否需要重建。
EN

Stack Overflow用户
提问于 2015-10-21 06:26:19
回答 1查看 3.5K关注 0票数 4

我正在尝试创建一个Docker设置(使用docker-组合)来测试我的Python应用程序之一。and启动Postgres、Redis服务器和PhantomJS服务器,然后使用pytest运行测试。

这就是我的test.sh的样子:

代码语言:javascript
复制
#!/bin/bash
UP=$(docker-compose up -d redis postgres phantomjs 2>&1)
echo $UP
if [[ $UP == *"Starting radar_postgres"* ]]; then
    echo "Sleeping 10 seconds to wait for PostgreSQL server..."
    sleep 10
fi
docker-compose build tests && \
docker-compose run \
    --rm \
    -e GOOGLE_OAUTH2_CLIENT_ID='$GOOGLE_OAUTH2_CLIENT_ID' \
    -e GOOGLE_OAUTH2_CLIENT_SECRET='$GOOGLE_OAUTH2_CLIENT_SECRET' \
    -e GOOGLE_DEVELOPER_TOKEN='$GOOGLE_DEVELOPER_TOKEN' \
    tests $@

首先启动依赖项。由于docker-compose up的工作方式,它们在必要时会自动重建。

然后,我在我的tests容器中运行一个一次性的工作。我使用一次性作业,而不是使用docker-compose up,因为这样我可以将参数传递给测试框架。

问题是容器总是被重建,即使Dockerfile没有改变,也不需要重新构建。(当然,每个步骤都使用缓存,但仍然需要4-5秒。)相反,如果我离开了docker-compose build行,那么当我更改Dockerfile时,容器就不会被重建。

是否只有在必要时才能重建图像?

EN

回答 1

Stack Overflow用户

发布于 2015-10-21 07:01:18

请注意,有一个讨论(第1455期)可以从docker中删除构建。

撰写的主要工作是编排而不是建筑,而码头形象是绘制这条线的自然之地。

因此,最好使用docker build命令(只在必要时构建映像),而不是使用docker-compose build (可能构建得太过激进)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33252352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档