亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Dockerfile設置多行環境變量

使用Dockerfile設置多行環境變量

慕尼黑5688855 2021-04-12 17:40:34
我想在Dockerfile中設置多行環境變量。通過命令行工作如果我通過docker run所有環境都可以通過環境變量。CONFIG="port: 4466databases:  prod:    connector: mysql    active: true    host: 33.333.333.333    port: 3306    user: root    password: pass"docker run --env CONFIG="$CONFIG" ubuntu:latest env | grep 'CONFIG'輸出(僅一行,因為它解釋為多行變量)CONFIG=port: 4466無法通過dockerfile工作Docker文件FROM ubuntu:latestENV CONFIG 'port: 4466\ndatabases:\n  prod:\n    connector: mysql\n    active: true\n    host: host\n    port: 3306\n    user: root\n    password: pass'構建并運行Docker映像docker build -t multilinetest .docker run multilinetest env | grep 'CONFIG'輸出CONFIG=port: 4466\ndatabases:\n  prod:\n    connector: mysql\n    active: true\n    host: host\n    port: 3306\n    user: root\n    password: pass預期的兩種情況都應存儲相同的環境變量(我將此環境變量傳遞到需要多行字符串的第三方圖像中)
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

通過將多行環境變量作為arg傳遞給docker build,我能夠使它工作。


Docker文件


FROM ubuntu:latest

ARG CONFIG

ENV CONFIG $CONFIG

生成命令


CONFIG="port: 4466

databases:

  prod:

    connector: mysql

    active: true

    host: 33.333.333.333

    port: 3306

    user: root

    password: pass"

docker build --build-arg CONFIG="$CONFIG" ubuntu:latest env | grep 'CONFIG'


查看完整回答
反對 回復 2021-04-16
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

轉義換行符可以正常工作。


Docker文件

ENV BUILD_DEPENDENCIES apt-utils \

  curl \

  libc-dev \

  gcc \

  gnupg2

輸出

Step 8/48 : ENV BUILD_DEPENDENCIES apt-utils   curl   libc-dev   gcc   gnupg2

 ---> Running in 65b0ad105af4


查看完整回答
反對 回復 2021-04-16
  • 2 回答
  • 0 關注
  • 1555 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號