Docker撰写args返回linux命令

时间:2018-02-09 11:47:55

标签: docker docker-compose

我正在尝试使用linux命令的输出为docker compose设置arg作为我的示例:

args:
     ID_GITLAB: $(id -u $USER)

但是当我运行我的作品时,我得到以下错误:

ERROR: Invalid interpolation format for "build" option in service "gpc-fontes-ci": "$(id -u $USER)"

2 个答案:

答案 0 :(得分:2)

只做

USER_ID=$(id -u $USER) docker-compose

使用常规变量

撰写Compose文件
args:
     ID_GITLAB: $USER_ID

答案 1 :(得分:0)

您需要用另一个$来使$字符转义,例如

args:
     ID_GITLAB: $$(id -u $USER)

command的规则相同。

请参阅:Variable substitution

  

当您的配置需要文字美元符号时,可以使用$$(美元符号)。这也可以防止Compose插值,因此$$允许您引用您不想由Compose处理的环境变量。

例如:

web:
  build: .
  command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"