所以我想使用自定义 env 文件取决于通过命令行传递的自定义环境变量。
假设我使用 docker-compose run 命令开始我的撰写:
docker-compose run -e ENVIROMENT=local spring-app
Run Code Online (Sandbox Code Playgroud)
然后我想在基于 ENVIROMENT 变量的 docker-compose.yml 文件中使用我的自定义 .env
version: '2.1'
services:
spring-app:
build: .
depends_on:
docker-mariadb:
condition: service_healthy
links:
- docker-mariadb
ports:
- 8080:8080
environment:
- SPRING_PROFILES_ACTIVE
- DATABASE_HOST
- DATABASE_USER
- DATABASE_PASSWORD
- DATABASE_NAME
- DATABASE_PORT
env_file:
- ${ENVIROMENT}.env
docker-mariadb:
image: mariadb:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${DATABASE_PASSWORD}
- MYSQL_DATABASE=${DATABASE_NAME}
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
healthcheck:
test: "/usr/bin/mysql --user=${DATABASE_USER} --password=${DATABASE_PASSWORD} --execute \"SHOW DATABASES;\""
interval: 30s
timeout: 10s
retries: 5
env_file:
- ${ENVIROMENT}.env
Run Code Online (Sandbox Code Playgroud)
我的码头档案: …