services: db: image: mariadb:11.6 restart: unless-stopped environment: TZ: ${TZ} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} healthcheck: test: [ "CMD-SHELL", "([ -x /usr/bin/mariadb-admin ] && mariadb-admin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent) || \ ([ -x /usr/bin/mysqladmin ] && mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent) || \ (command -v bash >/dev/null 2>&1 && bash -c '/dev/null 2>&1)" ] interval: 5s timeout: 5s retries: 20 start_period: 40s command: [ "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci" ] volumes: - db_data:/var/lib/mysql networks: - appnet bot: build: context: ./services/bot dockerfile: Dockerfile args: - PY_VERSION=3.12 environment: TZ: ${TZ} PYTHONPATH: /app depends_on: db: condition: service_healthy env_file: - ./.env volumes: - ./services/bot:/app command: ["/app/entrypoint.sh"] networks: - appnet adminer: image: adminer:latest ports: - "8081:8080" environment: TZ: ${TZ} depends_on: db: condition: service_healthy networks: - appnet volumes: db_data: networks: appnet: driver: bridge