Search code examples
docker-composemicroservices

ERROR: Named volume "postgres:/data/postgres:rw" is used in service "postgres" but no declaration was found in the volumes section


i am trying to build micro service project. and i am getting this error when i am trying to run my docker_compose file:

ERROR: Named volume "postgres:/data/postgres:rw" is used in service "postgres" but no declaration was found in the volumes section.

this is my docker_compose file :

services:
  postgres:
    container_name: postgres
    image: postgres
    environment:
      POSTGRES_USER: amigoscode
      POSTGRES_PASSWORD: password
      PGDATA: /data/postgres
    volumes:
      - postgres:/data/postgres
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: 'False'
    volumes:
      - pgadmin:/var/lib/pgadmin
    ports:
      - "5050:80"
    networks:
      - postgres
    restart: unless-stopped

any hint will be appreciated.


Solution

  • You are missing the relative path, this would work. Either use a relative path or a fixed one!

    services:
      postgres:
        container_name: postgres
        image: postgres
        environment:
          POSTGRES_USER: amigoscode
          POSTGRES_PASSWORD: password
          PGDATA: /data/postgres
        volumes:
          - ./postgres:/data/postgres
        ports:
          - "5432:5432"
        networks:
          - postgres
        restart: unless-stopped
      pgadmin:
        container_name: pgadmin
        image: dpage/pgadmin4
        environment:
          PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
          PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
          PGADMIN_CONFIG_SERVER_MODE: 'False'
        volumes:
          - ./pgadmin:/var/lib/pgadmin
        ports:
          - "5050:80"
        networks:
          - postgres
        restart: unless-stopped