python - 完成测试过程后,Docker Pytest 容器保持运行
问题描述
我已经设置了我的 django 项目,现在我正在尝试使用 pytest 对其进行测试。使用我的容器运行 pytest 有什么问题不会在进程结束时杀死它。所以在一天结束时,我遇到了来自 pytest 的多个正在运行的容器,并且经常遇到 postgreSql 连接问题。
我的码头工人撰写文件:
version: '3'
services:
license_server:
build: .
command: bash -c "python manage.py migrate && gunicorn LicenseServer.wsgi --reload --bind 0.0.0.0:8000"
depends_on:
- postgres
volumes:
- .:/code
environment:
DATABASE_NAME: "${DATABASE_NAME}"
DATABASE_USER: "${DATABASE_USER}"
DATABASE_PASSWORD: "${DATABASE_PASSWORD}"
DATABASE_PORT: "${DATABASE_PORT}"
DATABASE_HOST: "${DATABASE_HOST}"
env_file: .env
ports:
- "8000:8000"
restart: always
postgres:
build: ./postgres
volumes:
- ./postgres/postgres_data:/var/lib/postgresql/data/
environment:
POSTGRES_PASSWORD: postgres
DATABASE_NAME: "${DATABASE_NAME}"
DATABASE_USER: "${DATABASE_USER}"
DATABASE_PASSWORD: "${DATABASE_PASSWORD}"
DATABASE_PORT: "${DATABASE_PORT}"
DATABASE_HOST: "${DATABASE_HOST}"
command: "-p 8005"
env_file: .env
ports:
- "127.0.0.1:8005:8005"
restart: always
nginx:
image: nginx:latest
container_name: nginx1
ports:
- "8001:80"
volumes:
- .:/code
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- license_server
我想要实现的是在测试过程完成后自动关闭容器。
解决方案
当您拥有restart: always
它们时,它们只会在该命令产生的所有进程都退出时继续重新启动。即使您尝试自己杀死正在运行的容器,它们也会倾向于重新启动(这可能很麻烦)。尝试restart: always
从您的服务描述中删除。
有关更多信息,请查看docker-compose.yml 参考
推荐阅读
- ios - 如何使用访问令牌发出 API 请求?
- vector - 如何实现一个包含自身向量的 Cow 的枚举?
- go - 如何在 Java 中编写与匿名类等效的东西?
- java - 用java在代码网站练习时的一个小问题
- python - JSONDecodeError at / Expecting value: line 1 column 1 (char 0)
- nginx - 如何配置 nginx 代理 x.example.com/a/xxx 到 a.example.com/xxx
- python - 抓取网站时尝试对位置进行编码/解码
- python - Matplotlib:设置颜色时在 SVG 中绘制圆边的 fill_between
- typescript - 使用 vss-web-extensions-sdk 发布管理 API 和分页
- dart - Flutter VideoPlayerController “在构建期间调用了 setState() 或 markNeedsBuild()。”