如何通过env-file设置环境variables
我有一个基于Docker的spring指南的Dockerfile。 我的应用程序消耗一些私人数据,所以我想通过这些参数通过环境variables。 当我运行docker集装箱时:
docker run -p 8080:8080 -t myname/myapplication --env-file=~/env.list
看起来variables没有设置,应用程序看不到它们,我做错了什么? 如何传递这些参数?
env.list:
ACCOUNT_ID=my_account_id ACCOUNT_PASSWORD=my_secret_password
我的ENTRYPOINT
:
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar $APPLICATION_NAME
我认为
docker run
获取图像和命令之前的所有参数。 如果我做
docker run -t --env-file=env.list ubuntu sh -c "while true; do echo world; sleep 100 ;done"
接着
docker exec -it container_id env
我明白了
HOSTNAME=195f18677a91 TERM=xterm ACCOUNT_ID=my_account_id ACCOUNT_PASSWORD=my_secret_password HOME=/root
尝试
docker run -p 8080:8080 --env-file=~/env.list -t myname/myapplication
这很好:
cat <<EOF > test.env MYVAR=test EOF docker run -it --env-file test.env busybox env | grep MYVAR
这将按预期打印:
MYVAR=test
在你的Java应用程序中,你可以通过System.getenv()
访问环境variables。
- 构build之后,将Environmentvariables传递给Webpack 2
- 找不到环境参数
- 将所有主机环境variables传递给Docker容器的最简单的方法
- ENV 。编码返回#<Encoding:ASCII-8BIT>在生产时被分配一个Unicodestring
- 在Docker运行中使用容器环境variables,而不使用bash -c
- Docker环境variables和Django数据库设置
- PHP-docker容器中的环境variables
- 如何确认发送到docker run命令的环境variables是否被接收?
- Xdebug(在Docker容器中)忽略XDEBUG_CONFIG环境variables