我通過運行命令docker-compose build來調用docker文件,通過我的docker撰寫文件。我在.env文件中定義了我的環境變量。當我這樣做的身材,在我的搬運工文件,一切正常,除了這行將環境變量傳遞到通過撰寫yaml構建的docker文件
RUN git config --global user.email ${USER_NAME}
它失敗的消息
←[31mERROR←[0m: Service 'git' failed to build: The command '/bin/sh -c git confi
g --global user.email ${USER_NAME}' returned a non-zero code: 1
但是,如果我贊同集裝箱時$ {USER_NAME}(泊塢窗,撰寫它可以正確打印出這個變量。
ENTRYPOINT echo ${USER_NAME}//this works
什麼是在一個環境變量傳遞在泊塢窗文件運行命令的正確方法?
更新:這是文件的精簡版
YAML文件
version: '2'
services:
git:
build:
context: ./git
args:
- USER_NAME
env_file:
- ./common.env
信封文件
USER_NAME="My test user"
泊塢文件:
FROM xxx
ARG USER_NAME
RUN git config --global user.name ${USER_NAME}
ENTRYPOINT git config --list
命令 體形:
docker-compose build git
運行:
docker-compose up git
構建失敗,錯誤
RUN git config --global user.name ${USER_NAME}
---> Running in 7b67ddeae989
←[31mERROR←[0m: Service 'git' failed to build: The command '/bin/sh -c git config --global user.name ${USER_NAME}' returned a non-zero code: 1
包含一個更完整的docker-compose.yml和Dockerfile示例可以更容易地提供幫助。 – BMitch
您的'git'命令失敗了,從提供的有限錯誤信息中,無法說明原因(是否安裝了git)?嘗試直接在容器中運行它,並確保它不會提示輸入或提供不良的退出代碼。您的'.env'文件內容也可能有助於調試。 – BMitch
添加了.env內容。如果我硬編碼它的用戶名。在運行時直接讀取環境也可以。 – developer747