【问题标题】:How to use yaml env file in docker compose如何在 docker compose 中使用 yaml env 文件
【发布时间】:2022-06-17 21:17:52
【问题描述】:

我有 .env 文件为 yaml 格式,换句话说,我有 development.yaml 文件,其中包含以下内容:

server:
  port: 3000
  apiPrefix: api/v1
  swagger:
    title: Test
    description: test description
    version: 1.0
    api: /docs
database:
  name: test
  autoLoadModels: true
  synchronize: false
  dialect: postgres

docker-compose.yaml里面

version: '3.8'
services:
  dev:
    env_file:
      - config/development.yaml
    container_name: test_development_api_docker_container
    image: test_development_api_docker_container:1.0.0
    build:
      context: .
      target: testDevelopmentEnv
      dockerfile: ./Dockerfile
    command: npm run start:debug
    ports:
      - ${port}:${port}
    networks:
      - test_network
    volumes:
      - .:/Users/falyoun/dev/ite/test
      - /Users/falyoun/dev/ite/test/node_modules
    restart: unless-stopped

networks:
  test_network:

在上面我试过的文件中:

  • ${端口}

  • ${server.port}

以及诸如

之类的所有原因问题

错误:服务“dev”中“ports”选项的插值格式无效:“${server.port}:${server.port}”

错误:撰写文件“./docker-compose.yaml”无效,因为: services.dev.ports 包含无效类型,它应该是数字或对象

【问题讨论】:

  • Compose .env file 是扁平的KEY=value 格式,而不是 YAML。这个配置文件是从哪里来的?看起来它可能更好地匹配 Kubernetes Helm 工具,而不是 Compose。
  • @DavidMaze 是的,我知道 .env 文件的格式,但我将配置存储在 .yaml 文件中,我确实需要将其加载到 docker-compose

标签: docker docker-compose


【解决方案1】:

docker-compose 发行版已被弃用。相反,您应该安装 docker-compose-plugin。随着时间的推移,这将变得更加重要,因为版本之间的差距越来越大(目前是 1.25.X 与 2.6.X)。您现在将执行命令,而不是执行 docker-compose up:

docker compose up

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 2021-02-10
    • 2019-10-21
    • 1970-01-01
    • 2018-07-07
    • 2021-06-10
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多