Add Docker compose support for Postgres
This commit is contained in:
2
database/.gitignore
vendored
Normal file
2
database/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
docker-db-data/*
|
||||||
|
docker-pg-db-data/*
|
||||||
3
database/docker-db-data/.gitignore
vendored
3
database/docker-db-data/.gitignore
vendored
@@ -1,3 +0,0 @@
|
|||||||
*
|
|
||||||
*/
|
|
||||||
!.gitignore
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
CREATE DATABASE cosmic;
|
||||||
CREATE USER cosmic_admin WITH ENCRYPTED PASSWORD 'redsnailshell';
|
CREATE USER cosmic_admin WITH ENCRYPTED PASSWORD 'redsnailshell';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE cosmic TO cosmic_admin;
|
GRANT ALL PRIVILEGES ON DATABASE cosmic TO cosmic_admin;
|
||||||
ALTER ROLE cosmic_admin WITH CREATEROLE;
|
ALTER ROLE cosmic_admin WITH CREATEROLE;
|
||||||
@@ -4,6 +4,7 @@ services:
|
|||||||
build: .
|
build: .
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
- pg_db
|
||||||
ports:
|
ports:
|
||||||
# Login server
|
# Login server
|
||||||
- "8484:8484"
|
- "8484:8484"
|
||||||
@@ -19,6 +20,7 @@ services:
|
|||||||
- ./wz:/opt/server/wz
|
- ./wz:/opt/server/wz
|
||||||
environment:
|
environment:
|
||||||
DB_HOST: "db"
|
DB_HOST: "db"
|
||||||
|
PG_DB_HOST: "pg_db"
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mysql:8.0.23
|
image: mysql:8.0.23
|
||||||
@@ -30,3 +32,11 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./database/docker-db-data:/var/lib/mysql
|
- ./database/docker-db-data:/var/lib/mysql
|
||||||
- ./database/sql:/docker-entrypoint-initdb.d
|
- ./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
|
||||||
@@ -16,6 +16,8 @@ public class FlywayRunner {
|
|||||||
.dataSource(dbConfig.getJdbcUrl(), dbConfig.adminUsername(), dbConfig.adminPassword())
|
.dataSource(dbConfig.getJdbcUrl(), dbConfig.adminUsername(), dbConfig.adminPassword())
|
||||||
.schemas(dbConfig.schema())
|
.schemas(dbConfig.schema())
|
||||||
.createSchemas(true)
|
.createSchemas(true)
|
||||||
|
.connectRetries(10)
|
||||||
|
.connectRetriesInterval(5)
|
||||||
.load();
|
.load();
|
||||||
flyway.migrate();
|
flyway.migrate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -935,8 +935,12 @@ public class Server {
|
|||||||
|
|
||||||
private PgDatabaseConfig readPgDbConfig() {
|
private PgDatabaseConfig readPgDbConfig() {
|
||||||
final ServerConfig serverConfig = YamlConfig.config.server;
|
final ServerConfig serverConfig = YamlConfig.config.server;
|
||||||
|
String pgDbHost = System.getenv("PG_DB_HOST");
|
||||||
|
if (pgDbHost == null) {
|
||||||
|
pgDbHost = serverConfig.PG_DB_HOST;
|
||||||
|
}
|
||||||
return new PgDatabaseConfig(
|
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_ADMIN_USERNAME, serverConfig.PG_DB_ADMIN_PASSWORD,
|
||||||
serverConfig.PG_DB_USERNAME, serverConfig.PG_DB_PASSWORD,
|
serverConfig.PG_DB_USERNAME, serverConfig.PG_DB_PASSWORD,
|
||||||
Duration.ofSeconds(serverConfig.INIT_CONNECTION_POOL_TIMEOUT)
|
Duration.ofSeconds(serverConfig.INIT_CONNECTION_POOL_TIMEOUT)
|
||||||
|
|||||||
Reference in New Issue
Block a user