Docker Compose通过.env传递命令args
我经常需要用不同的参数启动Odoo服务器 因此,在docker-compose.yml(已版本化)中,我指定了以下内容:Docker Compose通过.env传递命令args,docker,docker-compose,environment-variables,odoo,Docker,Docker Compose,Environment Variables,Odoo,我经常需要用不同的参数启动Odoo服务器 因此,在docker-compose.yml(已版本化)中,我指定了以下内容: version: '3' services: web: image: odoo:12.0 command: odoo ${ODOO_ARGS} ODOO_ARGS="--database=myDb --update=all --stop-after-init" 并创建了一个.env文件,其中包含: ODOO_ARGS="-
version: '3'
services:
web:
image: odoo:12.0
command: odoo ${ODOO_ARGS}
ODOO_ARGS="--database=myDb --update=all --stop-after-init"
并创建了一个.env文件,其中包含:
ODOO_ARGS="--update=all"
这可以很好地处理单个参数,但不能处理多个参数。例如,如果我尝试以下操作:
version: '3'
services:
web:
image: odoo:12.0
command: odoo ${ODOO_ARGS}
ODOO_ARGS="--database=myDb --update=all --stop-after-init"
该命令的计算结果为:odoo--database=“myDb--update=all--stop after init”
我很确定这是一个语法问题,所以我想知道如何通过.env文件将多个参数传递给命令选项。它的计算结果实际上是
odoo”--database=myDb--update=all--stop after init“
,因为您在env文件中加了引号。以下是一个在一个字符串中包含多个参数的示例:
docker-compose.yml
版本:“3.7”
服务:
测试:
图片:debian:buster
命令:查找${ARGS}
环境署署长
运行此命令,您将获得:
test_1 | /bin/bash
test_1 | /usr/share/lintian/overrides/bash
test_1 | /usr/share/menu/bash
test_1 | /usr/share/doc/bash