将Environment变量添加到包含以下内容的Docker文件中:

时间:2019-06-27 19:05:24

标签: docker dockerfile

我想向包含以下内容的dockerfile添加一些环境变量:

所以我需要添加类似的内容

environment:
 -OAuth2Configuration:CacheProvider=true 

任何想法该怎么做,我什至试图用“”将键括起来,但是如果有任何想法,它会失败,并且docker compose file它给了错误:

2 个答案:

答案 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