version: "3.8" services: # MariaDB Database mariadb: image: mariadb:10.11 container_name: low-code-engine-mariadb restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootpassword} MYSQL_DATABASE: ${DB_DATABASE:-low_code_engine} MYSQL_USER: ${DB_USERNAME:-app_user} MYSQL_PASSWORD: ${DB_PASSWORD:-app_password} ports: - "${DB_PORT:-3306}:3306" volumes: - mariadb_data:/var/lib/mysql - ./docker/mariadb/init:/docker-entrypoint-initdb.d networks: - app-network healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_ROOT_PASSWORD:-rootpassword}", ] timeout: 5s retries: 10 interval: 10s # NestJS Application app: build: context: . dockerfile: Dockerfile target: development container_name: low-code-engine-app restart: unless-stopped environment: NODE_ENV: ${NODE_ENV:-development} DB_HOST: mariadb DB_PORT: 3306 DB_USERNAME: ${DB_USERNAME:-app_user} DB_PASSWORD: ${DB_PASSWORD:-app_password} DB_DATABASE: ${DB_DATABASE:-low_code_engine} ports: - "${APP_PORT:-3000}:3000" volumes: - .:/usr/src/app - /usr/src/app/node_modules networks: - app-network depends_on: mariadb: condition: service_healthy command: yarn start:dev volumes: mariadb_data: driver: local networks: app-network: driver: bridge