markmanx
01/31/2023, 12:11 AMSetting up PostgreSQL connection pool.
30 Jan 2023 23:59:43:477 +0000 | ERROR | pid: 36ab325a-c7ca-4472-bdc1-985af741e6be | [main] thread | io.supertokens.storage.postgresql.HikariLoggingAppender.doAppend(HikariLoggingAppender.java:132) | SuperTokens - Exception during pool initialization.
30 Jan 2023 23:59:43:478 +0000 | INFO | pid: 36ab325a-c7ca-4472-bdc1-985af741e6be | [main] thread | io.supertokens.storage.postgresql.ConnectionPool.initPool(ConnectionPool.java:150) | Error connecting to PostgreSQL instance. Please make sure that PostgreSQL is running and that you have specified the correct values for ('postgresql_host' and 'postgresql_port') or for 'postgresql_connection_uri'
markmanx
01/31/2023, 12:12 AMversion: "3.9"
services:
db:
image: postgres:15.1-alpine
container_name: isoflow_v2_db
restart: unless-stopped
ports:
- ${DB_PORT}:5432
networks:
- app_network
environment:
POSTGRES_USER: "${DB_USER}"
POSTGRES_PASSWORD: "${DB_PASSWORD}"
volumes:
- db:/var/lib/postgresql/data
auth_db:
image: postgres:15.1-alpine
container_name: isoflow_v2_auth_db
restart: unless-stopped
ports:
- ${AUTH_DB_PORT}:5432
networks:
- app_network
environment:
POSTGRES_USER: "${AUTH_DB_USER}"
POSTGRES_PASSWORD: "${AUTH_DB_PASSWORD}"
volumes:
- auth_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready"]
interval: 5s
timeout: 5s
retries: 5
supertokens:
image: registry.supertokens.io/supertokens/supertokens-postgresql
container_name: isoflow_v2_auth_app
depends_on:
auth_db:
condition: service_healthy
ports:
- ${AUTH_APP_PORT}:3567
environment:
POSTGRESQL_CONNECTION_URI: "postgresql://${AUTH_DB_USER}:${AUTH_DB_PASSWORD}@auth_db:5432/${AUTH_DB_USER}"
networks:
- app_network
restart: unless-stopped
healthcheck:
test: >
bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e "GET /hello HTTP/1.1\r\nhost: 127.0.0.1:3567\r\nConnection: close\r\n\r\n" >&3 && cat <&3 | grep "Hello"'
interval: 10s
timeout: 5s
retries: 5
volumes:
db:
auth_db:
networks:
app_network:
driver: bridge
markmanx
01/31/2023, 12:15 AMbash
within the Supertokens Docker container, I can see the POSTGRESQL_CONNECTION_URI
env variable is set correctly. I've even tried installing psql
in the container and trying to connect to the db using the URI, which works fine. Any ideas?markmanx
01/31/2023, 12:23 AMmarkmanx
01/31/2023, 12:27 AMsupertokens
does exist. I can connect to it via TablePlus (on the exposed container port).rp_st
01/31/2023, 5:41 AMdb
in the file above, but in the POSTGRESQL_CONNECTION_URI
config, you have used auth_db
markmanx
01/31/2023, 8:54 AMdb
, one is auth_db
rp_st
01/31/2023, 8:55 AMrp_st
01/31/2023, 8:56 AMpostgresql://${AUTH_DB_USER}:${AUTH_DB_PASSWORD}@auth_db:5432/${AUTH_DB_USER}
?markmanx
01/31/2023, 8:56 AMPOSTGRESQL_CONNECTION_URI=postgresql://supertokens:password@auth_db:5432/supertokens
rp_st
01/31/2023, 8:57 AMmarkmanx
01/31/2023, 8:57 AMpostgres
rp_st
01/31/2023, 8:57 AMmarkmanx
01/31/2023, 8:58 AMrp_st
01/31/2023, 8:58 AMmarkmanx
01/31/2023, 8:59 AMmarkmanx
01/31/2023, 8:59 AMmarkmanx
01/31/2023, 10:29 PMdocker-compose
config. It works, but I found an unrelated issue. It looks like the db healthcheck fails because of the -U supertokens_user
flag, I found I can get round it by omitting that flag, i.e.:
healthcheck:
test: ['CMD', 'pg_isready']
markmanx
01/31/2023, 10:30 PMalpine
version of Postgres.markmanx
01/31/2023, 10:30 PMmarkmanx
01/31/2023, 11:17 PMauth_db
in my docker-compose file, and the Supertokens service would fail to start. Renaming the service to db
makes it work 🤷♂️ You can try this with the vanilla docker-compose config as well:
version: "3"
services:
auth_db:
image: "postgres:latest"
environment:
POSTGRES_USER: supertokens_user
POSTGRES_PASSWORD: somePassword
POSTGRES_DB: supertokens
ports:
- 5432:5432
networks:
- app_network
restart: unless-stopped
healthcheck:
test: ["CMD", "pg_isready"]
interval: 5s
timeout: 5s
retries: 5
supertokens:
image: registry.supertokens.io/supertokens/supertokens-postgresql:4.3
depends_on:
auth_db:
condition: service_healthy
ports:
- 3567:3567
environment:
POSTGRESQL_CONNECTION_URI: "postgresql://supertokens_user:somePassword@auth_db:5432/supertokens"
networks:
- app_network
restart: unless-stopped
healthcheck:
test: >
bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e "GET /hello HTTP/1.1\r\nhost: 127.0.0.1:3567\r\nConnection: close\r\n\r\n" >&3 && cat <&3 | grep "Hello"'
interval: 10s
timeout: 5s
retries: 5
networks:
app_network:
driver: bridge
markmanx
01/31/2023, 11:17 PMmarkmanx
01/31/2023, 11:27 PMmarkmanx
01/31/2023, 11:46 PMjava.net.URI
here >> https://github.com/supertokens/supertokens-postgresql-plugin/blob/535a5ba046d4f6b5d0cbe1d48f1c10676a3fa72b/src/main/java/io/supertokens/storage/postgresql/config/PostgreSQLConfig.java#L90markmanx
01/31/2023, 11:47 PMmarkmanx
01/31/2023, 11:49 PMmarkmanx
02/01/2023, 12:46 AMrp_st
02/01/2023, 6:23 AMmarkmanx
02/02/2023, 9:26 AMrp_st
02/02/2023, 9:27 AM