我想在我的docker run命令中傳遞環境變數并在我的入口點 shell 腳本中訪問它們。
這是我的超級簡單Dockerfile的測驗目的:
FROM ubuntu:20.04
WORKDIR /
ADD entrypoint.sh .
RUN chmod 755 entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
這是entrypoint.sh:
#!/bin/sh
printf "env var TEST = ${TEST} "
我只是建立Dockerfile這樣的:docker build -t test:1.0 .
然后像這樣運行它:docker run -i test:1.0 -e TEST='Hello world'
不幸的是,輸出不包含環境變數。
uj5u.com熱心網友回復:
像這樣的東西會起作用:
入口點.sh
#!/bin/sh
echo $MYVAR
Dockerfile
FROM alpine:3.15.4
WORKDIR /home/app
COPY ./entrypoint.sh .
ENV MYVAR=""
ENTRYPOINT ["/bin/sh", "/home/app/entrypoint.sh"]
然后您可以在設定環境變數的同時構建和運行容器:
$ docker build -t test . && docker run -e MYVAR="hello world" test
uj5u.com熱心網友回復:
你的 docker 命令是正確的,但你應該檢查你的系統為什么它不起作用!還有一種添加環境變數的更好方法是 docker-compose ,我真的建議您使用 docker-compose ,我認為通過在 docker-compose 的環境變數中傳遞您的變數,您的問題將得到解決。如果您不知道應該如何配置 docker-compose,請查看檔案
docker-compose 環境變數檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467628.html
