【发布时间】: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
.envfile 是扁平的KEY=value格式,而不是 YAML。这个配置文件是从哪里来的?看起来它可能更好地匹配 Kubernetes Helm 工具,而不是 Compose。 -
@DavidMaze 是的,我知道 .env 文件的格式,但我将配置存储在
.yaml文件中,我确实需要将其加载到 docker-compose
标签: docker docker-compose