我有一个相当简单的 docker-compose 文件(一个 Mongo 服务,一个测试服务):
version: "3.7"
services:
mongo:
image: docker.io/mongo:4.4
container_name: mongo
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=example
test:
build:
context: ./..
dockerfile: ./tests/Dockerfile
image: antarctic_test
volumes:
- ./../tests/:/project/tests:ro
- ./../xxx/:/project/xxx:ro
depends_on:
- mongo
command: >
poetry run pytest
# should I kill mongo service explicitly here. If so, how?
作为我们 CI/CD 流程的一部分,我想用 podman-compose 运行它。这实际上有效(!)
poetry run podman-compose run -d mongo
poetry run podman-compose run test
podman pod rm -f tests
但这很糟糕。在我进入测试服务之前,不应该强制我显式启动 mongo 服务。这也不是现代 docker-compose 的工作方式。我认为更好的方法是
poetry run podman-compose up test
poetry run podman-compose down
但是,在这种情况下,它会执行测试,然后挂起,强制我使用 Ctrl C 显式关闭 mongo 服务。这有点令人失望。更重要的是,这种结构与 docker-compose 配合得非常好。
我想简短的回答可能是我不应该依赖 podman-compose,但我想更好地了解发生了什么。也许我在 docker-compose.yml 中做了一些愚蠢的事情。请告诉我