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';
|
||||
GRANT ALL PRIVILEGES ON DATABASE cosmic TO cosmic_admin;
|
||||
ALTER ROLE cosmic_admin WITH CREATEROLE;
|
||||
@@ -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
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user