在我的docker-compose中,我有2个容器,php容器和nginx容器。对于我定义的env变量的nginx容器,有没有办法在代码中的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
答案 0 :(得分:1)
不是,您不能那样做,容器是根据设计隔离的。您必须为两个容器都定义env变量。
要不重复代码,可以使用yaml anchors和extension fileds:
version: '3.7'
x-enviroment: &commonEnviroment
PLAYER_NAME: 'PLAYER_1'
services:
service-1:
enviroment: *commonEnviroment
service-2:
enviroment: *commonEnviroment
或者您可以使用env文件。将所有变量放在文件中的位置,并使用env_file