Add better Docker development and prod support

This commit is contained in:
Floris Westerman 2020-11-26 15:13:55 +01:00
parent e0462af9da
commit fcf2c2468d
No known key found for this signature in database
GPG key ID: E2AED138B92702B0
27 changed files with 1453 additions and 66 deletions

View file

@ -1,18 +1,16 @@
version: '2'
version: '3.0'
services:
# Mail server running on separate image
mail:
image: tvial/docker-mailserver:latest
hostname: mail
container_name: rl.mail
domainname: domain.com
restart: always
ports:
- 25:25
- 143:143
domainname: example.com
volumes:
- maildata:/var/mail
- mailstate:/var/mail-state
- ./.docker/mail/config/:/tmp/docker-mailserver/
- ./.docker/dev/mail/config/:/tmp/docker-mailserver/
environment:
- ENABLE_SPAMASSASSIN=0
- ENABLE_CLAMAV=0
@ -24,70 +22,44 @@ services:
cap_add:
- NET_ADMIN
- SYS_PTRACE
# MySQL database
db:
image: mysql:5.7
hostname: db
container_name: rl.db
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: snappymail
MYSQL_PASSWORD: snappymail
MYSQL_DATABASE: snappymail
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=snappymail
- MYSQL_PASSWORD=snappymail
- MYSQL_DATABASE=snappymail
volumes:
- mysql:/var/lib/mysql
- tmp:/tmp
# PHP FPM Server
php:
build:
context: ./.docker/php
hostname: php
container_name: rl.php
expose:
- 9000
context: ./.docker/dev/php
depends_on:
- db
- mail
volumes:
- ./:/var/www
# - ./build/local/:/var/www
- ./.docker/php/snappymail.ini:/usr/local/etc/php/conf.d/snappymail.ini
- tmp:/tmp
node:
build:
context: ./.docker/node
hostname: node
container_name: rl.node
working_dir: /var/www
command: sh -c 'yarn --version'
volumes:
- ./:/var/www
- tmp:/tmp
- ./.docker/dev/php/snappymail.ini:/usr/local/etc/php/conf.d/snappymail.ini
# Nginx load balancer translating to PHP FPM
nginx:
image: nginx:latest
hostname: nginx
container_name: rl.nginx
depends_on:
- php
ports:
- 443:443
- 80:80
- "${HTTPS_PORT}:443"
- "${HTTP_PORT}:80"
volumes:
- ./:/var/www
# - ./build/local/:/var/www
- ./.docker/nginx/ssl:/etc/nginx/ssl
- ./.docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- tmp:/tmp
tx:
build:
context: ./.docker/tx
hostname: tx
container_name: rl.tx
working_dir: /var/www
command: sh -c 'tx --version'
volumes:
- ./:/var/www
- ./.docker/.cache/tx/root:/root
- tmp:/tmp
- ./.docker/dev/nginx/ssl:/etc/nginx/ssl
- ./.docker/dev/nginx/default.conf:/etc/nginx/conf.d/default.conf
volumes:
mysql:
@ -95,6 +67,4 @@ volumes:
maildata:
driver: local
mailstate:
driver: local
tmp:
driver: local
driver: local