version: "3.9" services: mariadb: image: mariadb:11.2 container_name: portfolio_mariadb restart: always environment: MYSQL_ROOT_PASSWORD: root_password_change_me MYSQL_DATABASE: portfolio_db MYSQL_USER: portfolio_user MYSQL_PASSWORD: portfolio_password volumes: - mariadb_data:/var/lib/mysql ports: - "127.0.0.1:3306:3306" healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 flaskapp: image: python:3.10-slim container_name: portfolio_flaskapp working_dir: /app ports: - "127.0.0.1:5000:5000" restart: always depends_on: mariadb: condition: service_healthy command: > sh -c " apt-get update && apt-get install -y git default-libmysqlclient-dev build-essential pkg-config && [ -d /app/.git ] || git clone https://github.com/BluLupo/hersel.it.git /app && pip install --no-cache-dir -r requirements.txt && python init_db.py && gunicorn -w 4 -b 0.0.0.0:5000 app:app " environment: - PYTHONUNBUFFERED=1 - DB_HOST=mariadb - DB_PORT=3306 - DB_USER=portfolio_user - DB_PASSWORD=portfolio_password - DB_NAME=portfolio_db volumes: mariadb_data: