Я создал файл .env
, который содержит некоторые переменные:
WS_PORT=12345
Теперь способ docker-compose.yml
настроен так:
gateway:
build:
context: ./src/WebSocket
dockerfile: Dockerfile
image:sn-gateway
container_name: sn-gateway
ports:
- "12345:12345"
volumes:
- vendor:/root/vendor
- ./src/WebSocket:/root
env_file:
- ./src/WebSocket/config/.env
Проблема, с которой я столкнулся, заключается в том, что Dockerfile
запускает скрипт, который должен использовать переменную окружения (при запуске docker-compose config
список выводится правильно), но переменная в скрипте пуста.
Сценарий:
#!/bin/sh
echo ------
echo $WS_PORT
echo ------
Ничего не повторяет. Что я делаю не так, можно ли это сделать? Я видел много примеров пересылки ENV
через команды оболочки и тому подобное, но я не хочу этого. Я хочу, чтобы все работало при запуске docker-compose up -d
без необходимости что-либо указывать.