version: "3" services: mysql: image: mariadb:10.9.4 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="Europe/Berlin" ports: - "25:25" - "80:80" - "443:443" volumes: - piler_etc:/etc/piler - piler_var:/var/piler - 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: {} piler_cron: {}