无论如何,我是否可以通过docker-compose运行命令,例如实例化容器,运行命令,停止容器?

时间:2019-07-17 15:23:24

标签: unit-testing docker docker-compose odoo

我想标题说明了一切。

这种情况是我要运行一组Odoo单元测试。我想到的是:

  1. 运行docker-compose up -d --build
  2. 运行Odoo单元测试
  3. 从第1点停止所有正在运行的容器

除了编写运行这些命令(运行Odoo单元测试的命令)的shell脚本外,还有其他更实用的方法吗?

2 个答案:

答案 0 :(得分:0)

初始化容器

docker-compose up -d --build

运行测试


container_id=$(docker ps | grep image_name | awk '{print $1}')

docker exec -it $container_id bash -c 'cmd to run unit tests'

关闭容器

docker-compose down

答案 1 :(得分:0)

您可以使用docker-compose run -command运行Odoo测试。例如:

docker-compose run yourodooservice \
  --test-enable \
  --stop-after-init \
  -d yourdatabase \
  -i your_module

您可以在https://docs.docker.com/compose/reference/run/的文档中找到有关运行参数和限制的更多信息。

有关Odoo测试的好文章可以在https://link.medium.com/TNN7jLbUoY找到。它还包括使用docker和docker-compose时的注意事项。

我通常更喜欢使用纯docker而不是docker-compose运行测试。我发现以这种方式管理依赖性更加容易。如果compose更适合您的测试和开发工作流程,我也可以将其视为有效的选择。