小编use*_*149的帖子

由命令行设置的 docker-compose env 文件

所以我想使用自定义 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)

我的码头档案: …

docker dockerfile docker-compose docker-machine

5
推荐指数
1
解决办法
4807
查看次数