Dan*_*gen 6 docker docker-compose
我正在尝试创建一个 Docker 设置(使用 docker-compose)来在开发过程中测试我的一个 Python 应用程序。docker-compose.yml 启动 Postgres 服务器、Redis 服务器和 PhantomJS 服务器,然后使用 pytest 运行测试。
这就是我的test.sh样子:
#!/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 $@
Run Code Online (Sandbox Code Playgroud)
首先启动依赖项。由于工作方式的原因docker-compose up,它们会在必要时自动重建。
然后我在容器中运行一项一次性工作tests。我使用一次性作业而不是使用,docker-compose up因为这样我可以将参数传递给测试框架。
问题是容器总是在重建,即使 Dockerfile 没有改变并且不需要重建。(当然,每个步骤都使用缓存,但仍然需要 4-5 秒。)相比之下,如果我保留该行docker-compose build,那么当我更改 Dockerfile 时,容器不会被重建。
有没有办法仅在必要时重建图像?
| 归档时间: |
|
| 查看次数: |
3886 次 |
| 最近记录: |