secrets:
  postgres_default_password:
    file: ${DB_PATH}/postgres/secrets/default_password.txt
services:
  postgres:
    extends:
      file: ${TEMPLATES_PATH}
      service: default
    container_name: postgres
    image: postgres:16.11
    ports:
      - 5432:5432
    networks:
      - ip4net
      - ip6net
    secrets: [postgres_default_password]
    environment:
      POSTGRES_PASSWORD_FILE: /run/secrets/postgres_default_password
      # PGDATA: /var/lib/postgresql/data
      # see https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
      PUID: 5050
      PGID: 5050
    volumes:
      - ${DB_PATH}/postgres/data/postgres:/var/lib/postgresql/data
      - ${DB_PATH}/postgres/init/postgres:/docker-entrypoint-initdb.d

  postgres-with-pg-vector:
    extends:
      file: ${TEMPLATES_PATH}
      service: default
    container_name: postgres-with-pg-vector
    image: tensorchord/pgvecto-rs:pg16-v0.3.0
    ports:
      - 5433:5432
    networks:
      - ip4net
      - ip6net
    secrets: [postgres_default_password]
    environment:
      POSTGRES_PASSWORD_FILE: /run/secrets/postgres_default_password
      # PGDATA: /var/lib/postgresql/data
      # see https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
      PUID: 5050
      PGID: 5050
    volumes:
      - ${DB_PATH}/postgres/data/postgres-with-pg-vector:/var/lib/postgresql/data
      - ${DB_PATH}/postgres/init/postgres-with-pg-vector:/docker-entrypoint-initdb.d
