斯科特·蘭金的回答是正確的。在我看到Scott的回答之前,我發現了另一種選擇。因爲我用的Cloud Foundry我能夠使用manifest.yml文件,如:
---
applications:
- name: metabase
command: |
apk update &&
apk add ca-certificates &&
update-ca-certificates &&
apk add openssl &&
wget -O /tmp/jq-linux64 https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 &&
chmod +x /tmp/jq-linux64 &&
export MB_DB_HOST=$(echo $VCAP_SERVICES | /tmp/jq-linux64 -r '.dbaas[0].credentials.host') &&
export MB_DB_PORT=$(echo $VCAP_SERVICES | /tmp/jq-linux64 -r '.dbaas[0].credentials.port') &&
export MB_DB_DBNAME=$(echo $VCAP_SERVICES | /tmp/jq-linux64 -r '.dbaas[0].credentials.database') &&
export MB_DB_USER=$(echo $VCAP_SERVICES | /tmp/jq-linux64 -r '.dbaas[0].credentials.username') &&
export MB_DB_PASS=$(echo $VCAP_SERVICES | /tmp/jq-linux64 -r '.dbaas[0].credentials.password') &&
exec /app/run_metabase.sh
env:
MB_DB_TYPE: mysql
memory: 2GB
難道你看ARG dfirective,該文檔在這裏https://docs.docker.com/engine/ reference/builder /#/ arg – user2915097
謝謝你的想法。是的,我確實研究過它。這似乎會影響在構建時傳遞的環境變量,所以我認爲在這種情況下它不會有幫助。 – byumark
這是你自己建造的碼頭集裝箱嗎?或者你從Docker Hub使用? –