name: siot volumes: pg-db: driver: local networks: cv: db: internal: true services: pg: image: harbor.arfa.wise-paas.com/cvmt/pg18:${CVMT_BUILDTAG:-latest} build: {context: ., target: pg18} restart: unless-stopped profiles: [db, cv, ex] networks: [db] volumes: - pg-db:/bitnami/postgresql environment: POSTGRESQL_DATABASE: ${POSTGRESQL_DATABASE:-cvmt} POSTGRESQL_USERNAME: ${POSTGRESQL_USERNAME:-cvmt} POSTGRESQL_PASSWORD: ${POSTGRESQL_PASSWORD:-p@ss} POSTGRESQL_PORT_NUMBER: ${POSTGRESQL_PORT:-5432} pgadmin: image: harbor.arfa.wise-paas.com/cvmt/pgadmin4:${CVMT_BUILDTAG:-latest} build: {context: ., target: pgadmin4} restart: unless-stopped entrypoint: /bin/sh profiles: [db, op, ex] networks: - db - cv # join to traefik network labels: traefik.http.services.pgadmin.loadbalancer.server.port: 80 # traefik.http.routers.pgadmin.rule: Host(`pgadmin.${CVMT_DOMAINNAME:-local}`) traefik.http.routers.pgadmin.service: pgadmin traefik.http.routers.pgadmin.entrypoints: https, http # traefik.enable: true environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pg@admin.local} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-p@ss} PGADMIN_SERVER_JSON_FILE: /tmp/servers.json # https://www.pgadmin.org/docs/pgadmin4/latest/config_py.html PGADMIN_CONFIG_SERVER_MODE: 'False' # multi-user mode is useless command: # https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format - -c - | if [ ! -f "/tmp/servers.json" ]; then /bin/echo '*:*:*:*:${POSTGRESQL_PASSWORD:-p@ss}' > /tmp/servers-0.pgpass /bin/chmod 600 /tmp/servers-0.pgpass /bin/echo '{ "Servers": { "0": { "Name": "Local", "Group": "Servers", "Host": "pg", "Port": ${POSTGRESQL_PORT:-5432}, "MaintenanceDB": "${POSTGRESQL_DATABASE:-cvmt}", "Username": "${POSTGRESQL_USERNAME:-cvmt}", "PassFile": "/tmp/servers-0.pgpass", "SSLMode": "prefer" } } }' > /tmp/servers.json fi /entrypoint.sh