Использовать 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
OAuth2Configuration:CacheProvider=true
$ 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