0

我有一个相当简单的 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 中做了一些愚蠢的事情。请告诉我

4

0 回答 0