version: "3" services: mysql: image: mariadb:10.6 container_name: mysql_piler restart: unless-stopped cap_drop: - ALL cap_add: - dac_override - setuid - setgid environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_RANDOM_ROOT_PASSWORD=yes - TZ="Europe/Berlin" command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci healthcheck: test: mysql --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} piler --execute "show tables" interval: "60s" timeout: "5s" start_period: "15s" retries: 3 volumes: - db_data:/var/lib/mysql memcached: image: memcached:latest container_name: memcached_piler restart: unless-stopped cap_drop: - ALL command: -m 64 piler: image: sutoj/piler:1.4.2 container_name: piler restart: unless-stopped hostname: ${PILER_DOMAIN} init: true environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_HOSTNAME=mysql - PILER_HOSTNAME=${PILER_DOMAIN} - MEMCACHED_HOST=memcached - TZ=${TIME_ZONE} ports: - "25:25" - "80:80" - "443:443" volumes: - piler_etc:/etc/piler - piler_var_store:/var/piler/store - piler_var_manticore:/var/piler/manticore - piler_var_imap:/var/piler/imap - piler_var_stat:/var/piler/stat - piler_cron:/var/spool/cron/crontabs - /etc/localtime:/etc/localtime:ro healthcheck: test: curl -s smtp://localhost/ interval: "60s" timeout: "3s" start_period: "15s" retries: 3 deploy: resources: reservations: memory: 512M limits: memory: 512M depends_on: - "memcached" - "mysql" volumes: db_data: piler_etc: piler_var_store: piler_var_manticore: piler_var_imap: piler_var_stat: piler_cron: