Docker合成无效类型

b4wnujal  于 2022-12-03  发布在  Docker
关注(0)|答案(1)|浏览(147)

我想在本地创建一个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'

但一切都没有改变

xoefb8l8

xoefb8l81#

看起来问题是你将POSTGRES_DB环境变量定义为一个数组,但它应该是一个字符串。在你的docker-compose.yaml文件中,你需要修改这一行:

environment:
  - POSTGRES_DB: ${POSTGRESQL_ADDON_DB}

更改为:

environment:
  POSTGRES_DB: ${POSTGRESQL_ADDON_DB}

注意我删除了POSTGRES_DB之前的-,这是导致错误的原因。当你在Docker Compose文件中定义环境变量时,每个变量都应该在自己的行上,开头没有-。

相关问题