Files
bamort/docker/docker-compose.yml
T

80 lines
2.2 KiB
YAML

services:
backend:
build:
context: ../backend
dockerfile: ../docker/Dockerfile.backend
container_name: bamort-backend
ports:
- "8180:8180"
environment:
- GO_ENV=production
- CGO_ENABLED=1
- DATABASE_TYPE=mysql
- DATABASE_URL=bamort:${MARIADB_PASSWORD:-secure_user_password}@tcp(mariadb:3306)/bamort?charset=utf8mb4&parseTime=True&loc=Local
depends_on:
mariadb:
condition: service_healthy
working_dir: /app
volumes:
- ./templates:/app/templates
restart: unless-stopped
frontend:
build:
context: ../frontend
dockerfile: ../docker/Dockerfile.frontend
container_name: bamort-frontend
ports:
- "8181:80"
environment:
- ENVIRONMENT=production
- VITE_API_URL=${VITE_API_URL:-http://bamort.trokan.de:8180}
- BASE_URL=http://bamort.trokan.de
- PORT=8180
depends_on:
- backend
restart: unless-stopped
mariadb:
image: mariadb:11.4
container_name: bamort-mariadb
restart: unless-stopped
#ports:
# - "3306:3306"
environment:
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-secure_root_password}
MARIADB_DATABASE: bamort
MARIADB_USER: bamort
MARIADB_PASSWORD: ${MARIADB_PASSWORD:-secure_user_password}
MARIADB_CHARSET: utf8mb4
MARIADB_COLLATION: utf8mb4_unicode_ci
volumes:
- ./bamort-db:/var/lib/mysql
- ./init-db:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 20s
timeout: 10s
retries: 3
# phpMyAdmin - Database Management (commented out for production)
# Uncomment the following section if you need database management in production
# phpmyadmin:
# image: phpmyadmin/phpmyadmin:5.2
# container_name: bamort-phpmyadmin
# restart: unless-stopped
# ports:
# - "8081:80"
# environment:
# PMA_HOST: mariadb
# PMA_PORT: 3306
# PMA_USER: root
# PMA_PASSWORD: ${MARIADB_ROOT_PASSWORD:-secure_root_password}
# MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-secure_root_password}
# PMA_ARBITRARY: 1
# depends_on:
# mariadb:
# condition: service_healthy
#volumes:
# db_data: