делить переменные env между 2 контейнерами из docker-compose - PullRequest
0 голосов
/ 03 февраля 2019

В моем docker-compose у меня есть 2 контейнера, php-container и nginx.Для контейнера nginx я определил переменную env, есть ли способ получить доступ к этой переменной в php-контейнере в коде?Я хочу получить доступ к php-коду к переменной PLAYER_NAME

version: '3.7'

services:
  api:
    build: '.'
    volumes:
      - './:/srv/api:rw'
    env_file:
      - .env
    networks:
      - backend

  nginx_player_1:
    image: 'nginx:1.15.7-alpine'
    depends_on:
      - api
    volumes:
      - './docker/nginx/conf.d:/etc/nginx/conf.d:ro'
      - './:/srv/api:rw'
    ports:
      - '8001:80'
    environment:
      PLAYER_NAME: 'PLAYER_1'
    networks:
      - backend

1 Ответ

0 голосов
/ 03 февраля 2019

Нет, вы не можете этого сделать, контейнеры изолированы по дизайну.Вы должны определить переменную env для обоих контейнеров.

Чтобы не дублировать ваш код, вы можете использовать либо ямл-якоря , либо расширение поля :

version: '3.7'

x-enviroment: &commonEnviroment
    PLAYER_NAME: 'PLAYER_1'

services:
    service-1: 
        enviroment: *commonEnviroment
    service-2: 
        enviroment: *commonEnviroment

или вы можете использовать env-файл.Где вы помещаете все свои переменные в файл и ссылаетесь на него из docker-compose, используя env_file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...