我想在本地创建一个postgresql数据库,但我不明白问题所在。
在我的.env POSTGRESQL_ADDON_DB='test'
所以它是一个字符串,所以为什么我有这个错误?你能帮助我请
我 Docker composer
version: "3.9"
services:
app:
build: .
user: 'node'
restart: always
container_name: ${COMPOSE_PROJECT_NAME}-app
working_dir: /usr/app/
command: npm run start:dev
ports:
- 8080:8080
volumes:
- .:/usr/app
- /usr/app/node_modules
env_file:
- fileName.env
depends_on:
- postgres
postgres:
image: postgres:11-alpine
container_name: ${COMPOSE_PROJECT_NAME}-postgres
environment:
- POSTGRES_DB: ${POSTGRESQL_ADDON_DB}
- POSTGRES_USER: ${POSTGRESQL_ADDON_USER}
- POSTGRES_PASSWORD: ${POSTGRESQL_ADDON_PASSWORD}
ports:
- 5432:5432
volumes:
- postgres:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4:latest
container_name: ${COMPOSE_PROJECT_NAME}-pgadmin
restart: always
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
- PGADMIN_LISTEN_PORT=80
- GUNICORN_ACCESS_LOGFILE='/dev/null'
- PGADMIN_CONFIG_UPGRADE_CHECK_ENABLED='false'
ports:
- 80:80
- 443:443
volumes:
- pgadmin-data:/var/lib/pgadmin
logging:
driver: none
depends_on:
- postgres
volumes:
pg-data:
pgadmin-data:
问题:ERROR: The Compose file './docker-compose.yaml' is invalid because: services.postgres.environment contains {"POSTGRES_DB": "test"}, which is an invalid type, it should be a string
我已经试过把一个静态值'
environment:
- POSTGRES_DB: 'test'
但一切都没有改变
1条答案
按热度按时间xoefb8l81#
看起来问题是你将POSTGRES_DB环境变量定义为一个数组,但它应该是一个字符串。在你的docker-compose.yaml文件中,你需要修改这一行:
更改为:
注意我删除了POSTGRES_DB之前的-,这是导致错误的原因。当你在Docker Compose文件中定义环境变量时,每个变量都应该在自己的行上,开头没有-。