Я бы хотел создать ссылку sym и получить исходный файл окружения из моего файла docker-compose при запуске с помощью Docker Stack. Как это:
version: '3'
services:
hello_world:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./config:/config:ro
- ./data:/data
command:
- /bin/bash
- -c
- |
ln -s /config/lala /etc/nginx/lala
source /config/env
nginx -g 'daemon off;'
Вы видите, что моя команда сначала создает символическую ссылку, затем создает файл среды, найденный в каталоге / config, который смонтирован на томе, а затем запускает nginx. Я знаю, что есть другие способы поместить переменные среды в файл docker-compose, но Я пытаюсь отделить аспекты среды от самого файла docker-compose.
Я запускаю это с помощью Docker Stack, вот так:
docker stack deploy -c docker-compose-local.yml nginx-test
но когда я заливаю в контейнер:
docker exec -it 5c /bin/bash
Я вижу, что пока моя символическая ссылка работала, переменные окружения не загружаются:
root@5c562e102cf4:/# env
HOSTNAME=5c562e102cf4
NJS_VERSION=1.15.9.0.2.8-1~stretch
NGINX_VERSION=1.15.9-1~stretch
PWD=/
HOME=/root
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
root@5c562e102cf4:/# cat /etc/nginx/lala
asdfadf
root@5c562e102cf4:/# source /config/env
root@5c562e102cf4:/# env
TEST_NGINX_ENV_SETTING=test_setting1
HOSTNAME=5c562e102cf4
NJS_VERSION=1.15.9.0.2.8-1~stretch
TEST_POSTGRES_ENV_SETTING=test_setting2
NGINX_VERSION=1.15.9-1~stretch
PWD=/
HOME=/root
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
Очень ценю любого, кто может помочь мне получить этот файл с подключенного тома ИЛИ понять, почему то, что я пытаюсь сделать, может вообще не сработать.