Переменные Docker .env для скрипта - PullRequest
0 голосов
/ 05 июня 2019

Я создал файл .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 без необходимости что-либо указывать.

1 Ответ

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

Вы можете получить файл env в скрипте

#!/bin/sh    
source ./src/WebSocket/config/.env


echo ------
echo $WS_PORT
echo ------
...