Add Docker compose support for Postgres

This commit is contained in:
P0nk
2023-02-24 22:41:04 +01:00
parent f1192279bf
commit 8bb825ef02
6 changed files with 20 additions and 4 deletions

2
database/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
docker-db-data/*
docker-pg-db-data/*

View File

@@ -1,3 +0,0 @@
*
*/
!.gitignore

View File

@@ -1,3 +1,4 @@
CREATE DATABASE cosmic;
CREATE USER cosmic_admin WITH ENCRYPTED PASSWORD 'redsnailshell';
GRANT ALL PRIVILEGES ON DATABASE cosmic TO cosmic_admin;
ALTER ROLE cosmic_admin WITH CREATEROLE;

View File

@@ -4,6 +4,7 @@ services:
build: .
depends_on:
- db
- pg_db
ports:
# Login server
- "8484:8484"
@@ -19,6 +20,7 @@ services:
- ./wz:/opt/server/wz
environment:
DB_HOST: "db"
PG_DB_HOST: "pg_db"
db:
image: mysql:8.0.23
@@ -30,3 +32,11 @@ services:
volumes:
- ./database/docker-db-data:/var/lib/mysql
- ./database/sql:/docker-entrypoint-initdb.d
pg_db:
image: postgres:15.0
environment:
POSTGRES_PASSWORD: postgres
volumes:
- ./database/docker-pg-db-data:/var/lib/postgresql/data
- ./database/postgres-scripts:/docker-entrypoint-initdb.d

View File

@@ -16,6 +16,8 @@ public class FlywayRunner {
.dataSource(dbConfig.getJdbcUrl(), dbConfig.adminUsername(), dbConfig.adminPassword())
.schemas(dbConfig.schema())
.createSchemas(true)
.connectRetries(10)
.connectRetriesInterval(5)
.load();
flyway.migrate();
}

View File

@@ -935,8 +935,12 @@ public class Server {
private PgDatabaseConfig readPgDbConfig() {
final ServerConfig serverConfig = YamlConfig.config.server;
String pgDbHost = System.getenv("PG_DB_HOST");
if (pgDbHost == null) {
pgDbHost = serverConfig.PG_DB_HOST;
}
return new PgDatabaseConfig(
serverConfig.PG_DB_NAME, serverConfig.PG_DB_HOST, serverConfig.PG_DB_SCHEMA,
serverConfig.PG_DB_NAME, pgDbHost, serverConfig.PG_DB_SCHEMA,
serverConfig.PG_DB_ADMIN_USERNAME, serverConfig.PG_DB_ADMIN_PASSWORD,
serverConfig.PG_DB_USERNAME, serverConfig.PG_DB_PASSWORD,
Duration.ofSeconds(serverConfig.INIT_CONNECTION_POOL_TIMEOUT)