name: bamort services: backend-dev: build: context: ../backend dockerfile: ../docker/Dockerfile.backend.dev container_name: bamort-backend-dev ports: - "8180:8180" environment: - GO_ENV=development - CGO_ENABLED=1 - DATABASE_TYPE=${DATABASE_TYPE:-mysql} - DB_HOST=${DB_HOST:-mariadb-dev} - DB_PORT=${DB_PORT:-3306} - DB_USER=${DB_USER:-bamort} - DB_PASSWORD=${DB_PASSWORD:-secure_user_password} - DB_NAME=${DB_NAME:-bamort} - API_PORT=${API_PORT:-8180} - TEMPLATES_DIR=${TEMPLATES_DIR:-./templatesx} - EXPORT_TEMP_DIR=${EXPORT_TEMP_DIR:-./export_tempx} - GIT_COMMIT=${GIT_COMMIT:-unknown} depends_on: mariadb-dev: condition: service_healthy working_dir: /app # Restart if Go code changes cause crash restart: unless-stopped volumes: - ../backend:/app - go-mod-cache:/go/pkg/mod frontend-dev: build: context: ../frontend dockerfile: ../docker/Dockerfile.frontend.dev container_name: bamort-frontend-dev ports: - "5173:5173" # Vite dev server port environment: - NODE_ENV=development - VITE_API_URL=${API_URL:-http://192.168.0.1:8180} - VITE_BASE_URL=${BASE_URL:-http://bamort.trokan.de} - VITE_API_PORT=${API_PORT:-8180} depends_on: - backend-dev restart: unless-stopped volumes: - ../frontend:/app - /app/node_modules # Prevent overwriting node_modules mariadb-dev: image: mariadb:11.4 container_name: bamort-mariadb-dev restart: unless-stopped ports: - "3306:3306" environment: MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-secure_root_password} MARIADB_DATABASE: ${DB_NAME:-bamort} MARIADB_USER: ${DB_USER:-bamort} MARIADB_PASSWORD: ${DB_PASSWORD:-secure_user_password} MARIADB_CHARSET: utf8mb4 MARIADB_COLLATION: utf8mb4_unicode_ci volumes: - ./bamort-db-dev:/var/lib/mysql - ./init-db:/docker-entrypoint-initdb.d healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] start_period: 10s timeout: 5s retries: 3 phpmyadmin-dev: image: phpmyadmin/phpmyadmin:5.2 container_name: bamort-phpmyadmin-dev restart: unless-stopped ports: - "8081:80" environment: PMA_HOST: ${DB_HOST:-mariadb-dev} PMA_PORT: ${DB_PORT:-3306} PMA_USER: root PMA_PASSWORD: ${DB_ROOT_PASSWORD:-secure_root_password} MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-secure_root_password} PMA_ARBITRARY: 1 depends_on: mariadb-dev: condition: service_healthy volumes: go-mod-cache: networks: default: name: bamort_default