feat: multiple database and user in postgres
All checks were successful
CI / build (push) Successful in 11s

This commit is contained in:
Pierre Tellier 2025-02-11 11:07:45 +01:00
parent d2cc3e00e1
commit eed4e6f855
10 changed files with 90 additions and 29 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@
.idea .idea
keycloak/CAS/target keycloak/CAS/target
docker-compose.yaml docker-compose.yaml
postgres/data

View File

@ -1,15 +1,14 @@
services: services:
postgres: postgres:
image: postgres:latest env_file: .env
build:
context: postgres/
dockerfile: Dockerfile
container_name: MyINPulse-DB container_name: MyINPulse-DB
ports: ports:
- 5432:5432 - 5433:5432
volumes: volumes:
- ./postgres:/var/lib/postgresql/data - ./postgres/data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
keycloak: keycloak:
container_name: MyINPulse-keycloak container_name: MyINPulse-keycloak

View File

@ -1,10 +1,14 @@
POSTGRES_DB=keycloak_db POSTGRES_DB=postgres_db
POSTGRES_USER=keycloak_db_user POSTGRES_USER=postgres
POSTGRES_PASSWORD=keycloak_db_user_password POSTGRES_PASSWORD=postgres_db_user_password
KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN=admin
KEYCLOAK_ADMIN_PASSWORD=admin KEYCLOAK_ADMIN_PASSWORD=admin
KEYCLOAK_HOSTNAME=localhost KEYCLOAK_HOSTNAME=localhost
KEYCLOAK_DB=keycloak_db
KEYCLOAK_USER=keycloak_db_user
KEYCLOAK_PASSWORD=keycloak_db_user_password
MYINPULSE_DB=MyINPulse_db BACKEND_DB=backend_db
MYINPULSE_DB_USER=MyINPulse_db_user BACKEND_USER=backend_db_user
MYINPULSE_DB_PASS=MyINPulse_db_user_pass BACKEND_PASSWORD=backend_db_user_password

View File

@ -1,15 +1,15 @@
services: services:
postgres: postgres:
image: postgres:latest env_file: .env
build:
context: postgres/
dockerfile: Dockerfile
container_name: MyINPulse-DB container_name: MyINPulse-DB
#ports: #ports:
# - 5432:5432 # - 5432:5432
volumes: volumes:
- ./postgres:/var/lib/postgresql/data - ./postgres/data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
keycloak: keycloak:
container_name: MyINPulse-keycloak container_name: MyINPulse-keycloak

View File

@ -1,6 +1,14 @@
POSTGRES_DB=keycloak_db POSTGRES_DB=postgres_db
POSTGRES_USER=keycloak_db_user POSTGRES_USER=postgres
POSTGRES_PASSWORD=keycloak_db_user_password POSTGRES_PASSWORD=postgres_db_user_password
KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN=admin
KEYCLOAK_ADMIN_PASSWORD=admin KEYCLOAK_ADMIN_PASSWORD=admin
KEYCLOAK_HOSTNAME=localhost KEYCLOAK_HOSTNAME=localhost
KEYCLOAK_DB=keycloak_db
KEYCLOAK_USER=keycloak_db_user
KEYCLOAK_PASSWORD=keycloak_db_user_password
BACKEND_DB=backend_db
BACKEND_USER=backend_db_user
BACKEND_PASSWORD=backend_db_user_password

View File

@ -1,11 +1,14 @@
services: services:
postgres: postgres:
image: postgres:latest env_file: .env
build:
context: postgres/
dockerfile: Dockerfile
container_name: MyINPulse-DB container_name: MyINPulse-DB
#ports: #ports:
# - 5432:5432 # - 5432:5432
volumes: volumes:
- ./postgres:/var/lib/postgresql/data - ./postgres/data:/var/lib/postgresql/data
environment: environment:
POSTGRES_DB: ${POSTGRES_DB} POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER} POSTGRES_USER: ${POSTGRES_USER}

View File

@ -1,6 +1,14 @@
POSTGRES_DB=keycloak_db POSTGRES_DB=postgres_db
POSTGRES_USER=keycloak_db_user POSTGRES_USER=postgres
POSTGRES_PASSWORD=keycloak_db_user_password POSTGRES_PASSWORD=postgres_db_user_password
KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN=admin
KEYCLOAK_ADMIN_PASSWORD=admin KEYCLOAK_ADMIN_PASSWORD=admin
KEYCLOAK_HOSTNAME=0549cd63f912d5dc9b31278d6f.eirb.fr KEYCLOAK_HOSTNAME=0549cd63f912d5dc9b31278d6f.eirb.fr
KEYCLOAK_DB=keycloak_db
KEYCLOAK_USER=keycloak_db_user
KEYCLOAK_PASSWORD=keycloak_db_user_password
BACKEND_DB=backend_db
BACKEND_USER=backend_db_user
BACKEND_PASSWORD=backend_db_user_password

5
postgres/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM postgres:latest
# Custom initialization scripts
COPY ./create_user.sh /docker-entrypoint-initdb.d/10-create_user.sh
COPY ./create_db.sh /docker-entrypoint-initdb.d/20-create_db.sh

17
postgres/create_db.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/bash
set -e
POSTGRES="psql --username ${POSTGRES_USER}"
echo "Creating database: ${DB_NAME}"
$POSTGRES <<EOSQL
CREATE DATABASE ${BACKEND_DB} OWNER ${BACKEND_USER};
EOSQL
echo "Creating database: ${DB_NAME}"
$POSTGRES <<EOSQL
CREATE DATABASE ${KEYCLOAK_DB} OWNER ${KEYCLOAK_USER};
EOSQL

16
postgres/create_user.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/bash
set -e
POSTGRES="psql --username ${POSTGRES_USER}"
echo "Creating database role: [${BACKEND_USER}]"
$POSTGRES <<-EOSQL
CREATE USER ${BACKEND_USER} WITH CREATEDB PASSWORD '${BACKEND_PASSWORD}';
EOSQL
echo "Creating database role: ${KEYCLOAK_USER}"
$POSTGRES <<-EOSQL
CREATE USER ${KEYCLOAK_USER} WITH CREATEDB PASSWORD '${KEYCLOAK_PASSWORD}';
EOSQL