2
0
mirror of https://github.com/frappe/frappe_docker.git synced 2024-12-22 18:18:57 +00:00
frappe_docker/pwd.yml

195 lines
4.8 KiB
YAML

version: "3"
services:
traefik:
image: "traefik:v2.2"
ports:
- "80:80"
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
command:
- "--providers.docker"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--providers.docker.swarmmode"
- "--accesslog"
- "--log"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
erpnext-nginx:
image: frappe/erpnext-nginx:edge
environment:
- FRAPPE_PY=erpnext-python
- FRAPPE_PY_PORT=8000
- FRAPPE_SOCKETIO=frappe-socketio
- SOCKETIO_PORT=9000
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.routers.erpnext-nginx.rule=HostRegexp(`{catchall:.*}`)"
- "traefik.http.middlewares.erpnext-nginx.headers.customrequestheaders.Host=erpnext-nginx"
- "traefik.http.routers.erpnext-nginx.middlewares=erpnext-nginx"
- "traefik.http.routers.erpnext-nginx.entrypoints=web"
- "traefik.http.services.erpnext-nginx.loadbalancer.server.port=8080"
volumes:
- sites-vol:/var/www/html/sites:rw
- assets-vol:/assets:rw
erpnext-python:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: on-failure
environment:
- MARIADB_HOST=mariadb
- REDIS_CACHE=redis-cache:6379
- REDIS_QUEUE=redis-queue:6379
- REDIS_SOCKETIO=redis-socketio:6379
- SOCKETIO_PORT=9000
- AUTO_MIGRATE=1
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
- assets-vol:/home/frappe/frappe-bench/sites/assets:rw
frappe-socketio:
image: frappe/frappe-socketio:edge
deploy:
restart_policy:
condition: on-failure
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
erpnext-worker-default:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: on-failure
command: worker
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
erpnext-worker-short:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: on-failure
command: worker
environment:
- WORKER_TYPE=short
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
erpnext-worker-long:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: on-failure
command: worker
environment:
- WORKER_TYPE=long
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
erpnext-schedule:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: on-failure
command: schedule
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
redis-cache:
image: redis:latest
deploy:
restart_policy:
condition: on-failure
volumes:
- redis-cache-vol:/data
redis-queue:
image: redis:latest
deploy:
restart_policy:
condition: on-failure
volumes:
- redis-queue-vol:/data
redis-socketio:
image: redis:latest
deploy:
restart_policy:
condition: on-failure
volumes:
- redis-socketio-vol:/data
site-configurator:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: none
command: ["bash", "-c", "echo erpnext-nginx > /sites/currentsite.txt"]
volumes:
- sites-vol:/sites:rw
mariadb:
image: mariadb:10.6
deploy:
restart_policy:
condition: on-failure
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
environment:
- MYSQL_ROOT_PASSWORD=admin
# Sometimes db initialization takes longer than 10 seconds and site-creator goes away.
# Frappe doesn't use CONVERT_TZ() function that requires time zone info, so we can just skip it.
- MYSQL_INITDB_SKIP_TZINFO=1
volumes:
- mariadb-conf-vol:/etc/mysql/conf.d
- mariadb-vol:/var/lib/mysql
site-creator:
image: frappe/erpnext-worker:edge
deploy:
restart_policy:
condition: none
command: new
environment:
- SITE_NAME=erpnext-nginx
- DB_ROOT_USER=root
- MYSQL_ROOT_PASSWORD=admin
- ADMIN_PASSWORD=admin
- INSTALL_APPS=erpnext
volumes:
- sites-vol:/home/frappe/frappe-bench/sites:rw
volumes:
mariadb-vol:
mariadb-conf-vol:
redis-cache-vol:
redis-queue-vol:
redis-socketio-vol:
assets-vol:
sites-vol: