services: php: container_name: "dootask-php-${APP_ID}" image: "kuaifan/php:swoole-8.0.rc20" shm_size: 2G ulimits: core: soft: 0 hard: 0 volumes: - shared_data:/usr/share/dootask - ./docker/crontab/crontab.conf:/etc/supervisor/conf.d/crontab.conf - ./docker/php/php.conf:/etc/supervisor/conf.d/php.conf - ./docker/php/php.ini:/usr/local/etc/php/php.ini - ./docker/logs/supervisor:/var/log/supervisor - ./:/var/www environment: LANG: "C.UTF-8" MODE: "production" MYSQL_HOST: "${DB_HOST}" MYSQL_PORT: "${DB_PORT}" MYSQL_DB_NAME: "${DB_DATABASE}" MYSQL_USERNAME: "${DB_USERNAME}" MYSQL_PASSWORD: "${DB_PASSWORD}" networks: - extnetwork depends_on: mariadb: condition: service_healthy redis: condition: service_healthy restart: unless-stopped nginx: container_name: "dootask-nginx-${APP_ID}" image: "nginx:alpine" ports: - "${APP_PORT}:80" - "${APP_SSL_PORT:-}:443" volumes: - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf - ./:/var/www networks: - extnetwork restart: unless-stopped redis: container_name: "dootask-redis-${APP_ID}" image: "redis:alpine" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - extnetwork restart: unless-stopped mariadb: container_name: "dootask-mariadb-${APP_ID}" image: "mariadb:10.7.3" volumes: - ./docker/mysql/repassword.sh:/etc/mysql/repassword.sh - ./docker/mysql/conf.d:/etc/mysql/conf.d - ./docker/mysql/data:/var/lib/mysql environment: MYSQL_PREFIX: "${DB_PREFIX}" MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}" MYSQL_DATABASE: "${DB_DATABASE}" MYSQL_USER: "${DB_USERNAME}" MYSQL_PASSWORD: "${DB_PASSWORD}" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "${DB_USERNAME}", "-p${DB_PASSWORD}"] interval: 5s timeout: 5s retries: 5 networks: - extnetwork restart: unless-stopped fileview: container_name: "dootask-fileview-${APP_ID}" image: "kuaifan/fileview:4.4.0-4" environment: KK_CONTEXT_PATH: "/fileview" KK_OFFICE_PREVIEW_SWITCH_DISABLED: true KK_MEDIA_CONVERT_DISABLE: true networks: - extnetwork restart: unless-stopped drawio-webapp: container_name: "dootask-drawio-webapp-${APP_ID}" image: "jgraph/drawio:24.7.17" volumes: - ./docker/drawio/webapp/index.html:/usr/local/tomcat/webapps/draw/index.html - ./docker/drawio/webapp/stencils:/usr/local/tomcat/webapps/draw/stencils - ./docker/drawio/webapp/js/app.min.js:/usr/local/tomcat/webapps/draw/js/app.min.js - ./docker/drawio/webapp/js/croppie/croppie.min.css:/usr/local/tomcat/webapps/draw/js/croppie/croppie.min.css - ./docker/drawio/webapp/js/diagramly/ElectronApp.js:/usr/local/tomcat/webapps/draw/js/diagramly/ElectronApp.js networks: - extnetwork restart: unless-stopped drawio-export: container_name: "dootask-drawio-export-${APP_ID}" image: "kuaifan/export-server:0.0.1" networks: - extnetwork volumes: - ./docker/drawio/export/fonts:/usr/share/fonts/drawio restart: unless-stopped minder: container_name: "dootask-minder-${APP_ID}" image: "kuaifan/minder:0.1.3" networks: - extnetwork restart: unless-stopped approve: container_name: "dootask-approve-${APP_ID}" image: "kuaifan/dooapprove:0.1.5" environment: TZ: "${TIMEZONE:-PRC}" MYSQL_HOST: "${DB_HOST}" MYSQL_PORT: "${DB_PORT}" MYSQL_DBNAME: "${DB_DATABASE}" MYSQL_USERNAME: "${DB_USERNAME}" MYSQL_PASSWORD: "${DB_PASSWORD}" MYSQL_Prefix: "${DB_PREFIX}approve_" DEMO_DATA: true KEY: ${APP_KEY} networks: - extnetwork restart: unless-stopped ai: container_name: "dootask-ai-${APP_ID}" image: "kuaifan/dootask-ai:0.3.5" environment: REDIS_HOST: "${REDIS_HOST}" REDIS_PORT: "${REDIS_PORT}" TIMEOUT: 600 networks: - extnetwork restart: unless-stopped face: container_name: "dootask-face-${APP_ID}" image: "hitosea2020/dooface:0.0.1" ports: - "7788:7788" environment: TZ: "${TIMEZONE:-PRC}" STORAGE: mysql MYSQL_HOST: "${DB_HOST}" MYSQL_PORT: "${DB_PORT}" MYSQL_USERNAME: "${DB_USERNAME}" MYSQL_PASSWORD: "${DB_PASSWORD}" MYSQL_DB_NAME: "${DB_DATABASE}" DB_PREFIX: "${DB_PREFIX}" REPORT_API: "http://nginx/api/public/checkin/report" networks: - extnetwork restart: unless-stopped search: container_name: "dootask-search-${APP_ID}" image: "public.ecr.aws/zinclabs/zincsearch:0.4.10" volumes: - search_data:/data environment: ZINC_DATA_PATH: "/data" ZINC_FIRST_ADMIN_USER: "${DB_USERNAME}" ZINC_FIRST_ADMIN_PASSWORD: "${DB_PASSWORD}" deploy: resources: limits: cpus: '2' networks: - extnetwork restart: unless-stopped appstore: container_name: "dootask-appstore-${APP_ID}" privileged: true image: "kuaifan/dootask-appstore:0.0.2" volumes: - shared_data:/usr/share/dootask - /var/run/docker.sock:/var/run/docker.sock - ./:/var/www environment: HOST_PWD: "${PWD}" networks: - extnetwork restart: unless-stopped networks: extnetwork: name: "dootask-networks-${APP_ID}" volumes: shared_data: name: "dootask-shared-data-${APP_ID}" redis_data: name: "dootask-redis-data-${APP_ID}" search_data: name: "dootask-search-data-${APP_ID}"