Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Compose通过.env传递命令args_Docker_Docker Compose_Environment Variables_Odoo - Fatal编程技术网

Docker Compose通过.env传递命令args

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="-

我经常需要用不同的参数启动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="--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