我想向包含以下内容的dockerfile添加一些环境变量:
所以我需要添加类似的内容
environment:
-OAuth2Configuration:CacheProvider=true
任何想法该怎么做,我什至试图用“”将键括起来,但是如果有任何想法,它会失败,并且docker compose file它给了错误:
答案 0 :(得分:0)
尝试用引号引起来,我用:
FROM alpine:latest
ENV "OAuth2Configuration:CacheProvider"=true
CMD ["env"]
答案 1 :(得分:0)
使用docker-compose的env_file
选项。
检出this。
这是我尝试过的方法,并且有效:
docker-compose.yaml
文件。version: '3'
services:
distro:
env_file: test.env
image: alpine
restart: always
container_name: Alpine_Distro
entrypoint: tail -f /dev/null
test.env
文件。OAuth2Configuration:CacheProvider=true
docker-compose up -d
$ docker-compose up -d
Creating network "ttt_default" with the default driver
Pulling distro (alpine:)...
latest: Pulling from library/alpine
921b31ab772b: Pull complete
Creating Alpine_Distro ... done
[node1] (local) root@192.168.0.33 ~/ttt
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74ee753a27b6 alpine "tail -f /dev/null" 4 seconds ago Up 2 seconds Alpine_Distro
[node1] (local) root@192.168.0.33 ~/ttt
$ docker exec -it 74ee753a27b6 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=74ee753a27b6
TERM=xterm
OAuth2Configuration:CacheProvider=true
HOME=/root
[node1] (local) root@192.168.0.33 ~/ttt
注意::您可以看到OAuth2Configuration:CacheProvider=true
的环境变量设置正确。
这里您的环境变量中包含:
,所以我想这就是environment
字段对您不起作用的原因。在env_file
选项中,=
左侧的任何内容均被视为环境名称,右侧-f =
被视为该值。因此,它在key=value
中的env_file
语法就是这样。
希望这会有所帮助。
更新:
如果您仅使用普通的docker
,请使用docker run
的{{3}}选项
$ docker run -itd --env-file test.env alpine
74f60cb6f513519c2dd7a093622537215937db1682b79a838c95e944a649f451
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74f60cb6f513 alpine "/bin/sh" 12 seconds ago Up 10 seconds infallible_nobel
$ docker exec -it 74f60cb6f513 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=74f60cb6f513
TERM=xterm
OAuth2Configuration:CacheProvider=true
HOME=/root