Add postgresql docker container scaffolding (#190)

This commit is contained in:
Leendert de Borst
2024-12-21 11:56:08 +01:00
parent 6a7fc9c5ba
commit 03fd047cb4
5 changed files with 60 additions and 1 deletions

6
Dockerfile.postgres Normal file
View File

@@ -0,0 +1,6 @@
FROM postgres:16-alpine
# Add any custom PostgreSQL configurations if needed
COPY postgresql.conf /etc/postgresql/postgresql.conf
CMD ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]

View File

@@ -34,3 +34,17 @@ services:
build:
context: .
dockerfile: src/Services/AliasVault.TaskRunner/Dockerfile
postgres:
image: aliasvault-postgres
build:
context: .
dockerfile: Dockerfile.postgres
ports:
- "5432:5432"
volumes:
- ./database:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: aliasvault
POSTGRES_USER: aliasvault
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}

View File

@@ -38,6 +38,10 @@ services:
restart: always
env_file:
- .env
depends_on:
- postgres
environment:
ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"
admin:
image: ghcr.io/lanedirt/aliasvault-admin:latest
@@ -50,6 +54,10 @@ services:
restart: always
env_file:
- .env
depends_on:
- postgres
environment:
ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"
smtp:
image: ghcr.io/lanedirt/aliasvault-smtp:latest
@@ -62,6 +70,10 @@ services:
restart: always
env_file:
- .env
depends_on:
- postgres
environment:
ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"
task-runner:
image: ghcr.io/lanedirt/aliasvault-task-runner:latest
@@ -71,3 +83,17 @@ services:
restart: always
env_file:
- .env
depends_on:
- postgres
environment:
ConnectionStrings__AliasServerDbContext: "Host=postgres;Database=aliasvault;Username=aliasvault;Password=${POSTGRES_PASSWORD}"
postgres:
image: ghcr.io/lanedirt/aliasvault-postgres:latest
volumes:
- ./database:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: aliasvault
POSTGRES_USER: aliasvault
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
restart: always

View File

@@ -689,7 +689,6 @@ handle_build() {
set_default_ports || { printf "${RED}> Failed to set default ports${NC}\n"; exit 1; }
set_public_registration || { printf "${RED}> Failed to set public registration${NC}\n"; exit 1; }
# Only generate admin password if not already set
if ! grep -q "^ADMIN_PASSWORD_HASH=" "$ENV_FILE" || [ -z "$(grep "^ADMIN_PASSWORD_HASH=" "$ENV_FILE" | cut -d '=' -f2)" ]; then
generate_admin_password || { printf "${RED}> Failed to generate admin password${NC}\n"; exit 1; }

14
postgresql.conf Normal file
View File

@@ -0,0 +1,14 @@
# Basic PostgreSQL configuration
max_connections = 100
shared_buffers = 128MB
dynamic_shared_memory_type = posix
max_wal_size = 1GB
min_wal_size = 80MB
log_timezone = 'UTC'
datestyle = 'iso, mdy'
timezone = 'UTC'
lc_messages = 'en_US.utf8'
lc_monetary = 'en_US.utf8'
lc_numeric = 'en_US.utf8'
lc_time = 'en_US.utf8'
default_text_search_config = 'pg_catalog.english'