version: "3.1" services: webserver: image: ketreweb container_name: ketreweb build: context: . dockerfile: Dockerfile restart: always volumes: - ./config/nginx/sites-enabled:/etc/nginx/sites-enabled:ro - ./config/nginx/sites-available:/etc/nginx/sites-available:ro - ./config/apache2/envvars:/etc/apache2/envvars:ro - ./config/apache2/ports.conf:/etc/apache2/ports.conf:ro - ./config/apache2/sites-enabled:/etc/apache2/sites-enabled:ro - ./config/apache2/sites-available:/etc/apache2/sites-available:ro - ./config/letsencrypt/live:/etc/letsencrypt/live:ro - ./config/letsencrypt/archive:/etc/letsencrypt/archive:ro - ./run.sh:/run.sh:ro - ./data/log:/var/log:rw - ./www:/var/www:ro ports: - 80:80 - 443:443 roundcube: image: roundcube/roundcubemail container_name: ketreweb-roundcube user: root environment: - ROUNDCUBEMAIL_DEFAULT_HOST=tls://ketrenos.com - ROUNDCUBEMAIL_SMTP_SERVER=tls://ketrenos.com - ROUNDCUBEMAIL_SMTP_PORT=587 ports: - 8124:80 restart: always volumes: - ./config/roundcube:/var/roundcube/config:ro - ./data/roundcube/db:/var/roundcube/db:rw - ./data/roundcube/html:/var/www/html:rw cron: image: ketre-cron container_name: ketreweb-cron build: context: . dockerfile: Dockerfile.cron restart: always volumes: - ./config/letsencrypt:/etc/letsencrypt:rw - ./config/cron.d:/etc/cron.d:ro - ./data/log:/var/log:rw - ./keys:/keys:ro - ./www:/var/www:rw