Добавьте переменную окружения в файл Docker, который содержит: - PullRequest
0 голосов
/ 27 июня 2019

Я хочу добавить некоторые переменные окружения в dockerfile, который содержит:

ТАК Мне нужно добавить что-то вроде

environment:
 -OAuth2Configuration:CacheProvider=true 

Любая идея, как это сделать, я даже пытался окружитьключ с "", но это не удается, так что если какая-либо идея, и Docker составляют файл, он выдает ошибку на:

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Использовать env_file опция docker-compose.

Проверьте это out.

Вот что я попробовал и все заработало:

  • Создан 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 переменная env установлена ​​правильно.

Здесь ваша переменная окружения содержит :, поэтому, я думаю, именно поэтому поле environment не работает для вас. В опции env_file все, что находится слева от =, рассматривается как имя среды, а справа -f = - как значение. Так что его key=value синтаксис в env_file, поэтому он будет работать.

Надеюсь, это поможет.

Обновление:

В случае, если вы используете только обычный docker, используйте - env-file опция docker run

$ 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
0 голосов
/ 27 июня 2019

Попробуйте поставить кавычки, я проверил это с помощью:

FROM alpine:latest
ENV "OAuth2Configuration:CacheProvider"=true 
CMD ["env"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...