docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
konifer:
container_name: konifer
# If building locally, comment out image: and uncomment the section below
# build:
# context: .
# dockerfile: Dockerfile
image: ghcr.io/dmaiken/konifer:latest
ports:
- "8080:8080"
volumes:
- ./konifer.conf:/app/config/konifer.conf
environment:
# Override sensitive config values using Env Vars
PG_PASSWORD: konifer_password
S3_SECRET_KEY: minio_secret_key
depends_on:
postgres:
condition: service_healthy
minio:
condition: service_healthy
networks:
- konifer-net
postgres:
image: postgres:17-alpine
container_name: konifer_postgres
environment:
POSTGRES_USER: konifer_user
POSTGRES_PASSWORD: konifer_password
POSTGRES_DB: konifer
volumes:
- pg_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U konifer_user -d konifer"]
interval: 5s
timeout: 5s
retries: 5
networks:
- konifer-net
minio:
image: quay.io/minio/minio
container_name: konifer_minio
command: server /data --console-address ":9001"
ports:
- "9000:9000" # S3 API Port
- "9001:9001" # Web Console Port
environment:
MINIO_ROOT_USER: minio_admin
MINIO_ROOT_PASSWORD: minio_secret_key
volumes:
- minio_data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 20s
retries: 3
networks:
- konifer-net
# MinIO starts empty. This container creates the default bucket automatically.
createbuckets:
image: quay.io/minio/mc
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 minio_admin minio_secret_key;
/usr/bin/mc mb myminio/konifer-assets;
/usr/bin/mc anonymous set public myminio/konifer-assets;
exit 0;
"
networks:
- konifer-net
volumes:
pg_data:
minio_data:
networks:
konifer-net:
driver: bridge