【问题标题】:Docker-Compose Passing command args by .envDocker-Compose 通过 .env 传递命令参数
【发布时间】:2020-09-14 17:40:24
【问题描述】:

我经常需要使用不同的参数来启动 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 文件将多个参数传递给命令选项。

【问题讨论】:

    标签: docker docker-compose environment-variables odoo


    【解决方案1】:

    它实际上计算为 odoo "--database=myDb --update=all --stop-after-init" 只是因为您在 env 文件中添加了引号。这是一个在一个字符串中包含多个参数的示例:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-10-20
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多