.env的Docker-Compose传递命令args

时间:2020-09-14 17:40:24

标签: docker docker-compose environment-variables odoo

我经常需要使用不同的参数来启动Odoo服务器。

因此,在版本化的docker-compose.yml中,我指定了以下内容:

version: '3'
services:
  web:
    image: odoo:12.0
    command: odoo ${ODOO_ARGS}

并使用以下命令创建了一个.env文件:

ODOO_ARGS="--update=all"

这对于单个参数很好,但是不能处理多个参数。例如,如果我尝试以下操作:

ODOO_ARGS="--database=myDb --update=all --stop-after-init"

该命令将被评估为:odoo --database =“ myDb --update = all --stop-after-init”

我很确定这是一个语法问题,所以我想知道如何通过.env文件将多个参数传递给命令选项。

1 个答案:

答案 0 :(得分:2)

实际上是因为您在环境文件中加上了引号,所以其计算结果为odoo "--database=myDb --update=all --stop-after-init"。这是一个在一个字符串中包含多个参数的示例:

docker-compose.yml

version: "3.7"

services:
  test:
    image: debian:buster
    command: find ${ARGS}

.env

ARGS=/ -name bash

运行此操作,您将获得:

test_1  | /bin/bash
test_1  | /usr/share/lintian/overrides/bash
test_1  | /usr/share/menu/bash
test_1  | /usr/share/doc/bash