services: app: build: context: . dockerfile: Dockerfile container_name: ${PROJECT_NAME}_app volumes: - ./data:/var/www depends_on: - mariadb environment: VIRTUAL_HOST: ${APP_DOMAIN} LETSENCRYPT_HOST: ${APP_DOMAIN} LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} GIT_REPO_URL: ${GIT_REPO_URL} APP_URL: ${APP_URL} DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} DB_DATABASE: ${DB_DATABASE} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} networks: - app_network mariadb: image: mariadb:10.6 container_name: ${PROJECT_NAME}_db restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - dbdata:/var/lib/mysql ports: - "3306:3306" networks: - app_network nginx: image: nginx:stable-alpine container_name: ${PROJECT_NAME}_nginx ports: - "80:80" volumes: - ./data:/var/www - ./default.conf:/etc/nginx/conf.d/default.conf depends_on: - app networks: - app_network volumes: dbdata: networks: app_network: name: app_network