services: php: container_name: "dootask-php-${APP_ID}" image: "kuaifan/php:swoole-8.0.rc18" shm_size: "2gb" ulimits: core: soft: 0 hard: 0 volumes: - ./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/log/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: ipv4_address: "${APP_IPPR}.2" depends_on: - redis - mariadb restart: unless-stopped nginx: container_name: "dootask-nginx-${APP_ID}" image: "nginx:alpine" ports: - "${APP_PORT}:80" - "${APP_SSL_PORT:-}:443" volumes: - ./docker/nginx:/etc/nginx/conf.d - ./public:/var/www/public networks: extnetwork: ipv4_address: "${APP_IPPR}.3" links: - php - office - fileview - drawio-webapp - drawio-export - minder - okr - ai restart: unless-stopped redis: container_name: "dootask-redis-${APP_ID}" image: "redis:alpine" networks: extnetwork: ipv4_address: "${APP_IPPR}.4" 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}" networks: extnetwork: ipv4_address: "${APP_IPPR}.5" restart: unless-stopped office: container_name: "dootask-office-${APP_ID}" image: "onlyoffice/documentserver:8.2.0.1" volumes: - ./docker/office/logs:/var/log/onlyoffice - ./docker/office/data:/var/www/onlyoffice/Data - ./docker/office/resources/require.js:/var/www/onlyoffice/documentserver/web-apps/vendor/requirejs/require.js - ./docker/office/resources/documenteditor/main/resources/css/app.css:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/resources/css/app.css - ./docker/office/resources/documenteditor/mobile/css/964.css:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/mobile/css/964.css - ./docker/office/resources/presentationeditor/main/resources/css/app.css:/var/www/onlyoffice/documentserver/web-apps/apps/presentationeditor/main/resources/css/app.css - ./docker/office/resources/presentationeditor/mobile/css/612.css:/var/www/onlyoffice/documentserver/web-apps/apps/presentationeditor/mobile/css/612.css - ./docker/office/resources/spreadsheeteditor/main/resources/css/app.css:/var/www/onlyoffice/documentserver/web-apps/apps/spreadsheeteditor/main/resources/css/app.css - ./docker/office/resources/spreadsheeteditor/mobile/css/887.css:/var/www/onlyoffice/documentserver/web-apps/apps/spreadsheeteditor/mobile/css/887.css environment: JWT_SECRET: ${APP_KEY} networks: extnetwork: ipv4_address: "${APP_IPPR}.6" restart: unless-stopped fileview: container_name: "dootask-fileview-${APP_ID}" image: "kuaifan/fileview:4.2.0-SNAPSHOT-RC25" environment: KK_CONTEXT_PATH: "/fileview" KK_OFFICE_PREVIEW_SWITCH_DISABLED: true KK_FILE_UPLOAD_ENABLED: true KK_MEDIA: "mp3,wav,mp4,mov,avi,wmv" networks: extnetwork: ipv4_address: "${APP_IPPR}.7" restart: unless-stopped drawio-webapp: container_name: "dootask-drawio-webapp-${APP_ID}" image: "jgraph/drawio:20.8.20" 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: ipv4_address: "${APP_IPPR}.8" depends_on: - drawio-export restart: unless-stopped drawio-export: container_name: "dootask-drawio-export-${APP_ID}" image: "kuaifan/export-server:0.0.1" networks: extnetwork: ipv4_address: "${APP_IPPR}.9" 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: ipv4_address: "${APP_IPPR}.10" restart: unless-stopped approve: container_name: "dootask-approve-${APP_ID}" image: "kuaifan/dooapprove:0.1.3" 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: ipv4_address: "${APP_IPPR}.11" depends_on: - mariadb restart: unless-stopped ai: container_name: "dootask-ai-${APP_ID}" image: "kuaifan/dooai:0.2.1" networks: extnetwork: ipv4_address: "${APP_IPPR}.12" restart: unless-stopped okr: container_name: "dootask-okr-${APP_ID}" image: "kuaifan/doookr:0.4.5" environment: TZ: "${TIMEZONE:-PRC}" DOO_TASK_URL: "http://${APP_IPPR}.3" MYSQL_HOST: "${DB_HOST}" MYSQL_PORT: "${DB_PORT}" MYSQL_DBNAME: "${DB_DATABASE}" MYSQL_USERNAME: "${DB_USERNAME}" MYSQL_PASSWORD: "${DB_PASSWORD}" MYSQL_PREFIX: "${DB_PREFIX}" DEMO_DATA: true KEY: ${APP_KEY} networks: extnetwork: ipv4_address: "${APP_IPPR}.13" depends_on: - mariadb 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://${APP_IPPR}.3:80/api/public/checkin/report" depends_on: - mariadb networks: extnetwork: ipv4_address: "${APP_IPPR}.14" restart: unless-stopped networks: extnetwork: name: "dootask-networks-${APP_ID}" ipam: config: - subnet: "${APP_IPPR}.0/24" gateway: "${APP_IPPR}.1"