cacert-devsetup/docker-compose.yml
2020-12-24 08:03:24 +01:00

127 lines
No EOL
2.8 KiB
YAML

---
version: "3.8"
services:
db:
build:
context: .
dockerfile: mariadb.Dockerfile
env_file:
- ./.env
environment:
MYSQL_CATS_DATABASE: cats
volumes:
- db:/var/lib/mysql
ports:
- "13306:3306"
healthcheck:
test: out=$$(mysqladmin ping -h localhost -P 3306 -u root -p$$MYSQL_ROOT_PASSWORD 2>&1); echo $$out | grep 'mysqld is alive' || { echo $$out ; exit 1 ; }
smtp:
build:
context: .
dockerfile: smtp.Dockerfile
volumes:
- maildir:/home/catchall/Maildir
mail:
build:
context: .
dockerfile: mail.Dockerfile
volumes:
- maildir:/home/catchall/Maildir
env_file:
- ./.env
webdb:
build:
context: .
dockerfile: webdb.Dockerfile
environment:
DEPLOYMENT_NAME: "CAcert.org Website (local development)"
MYSQL_WEBDB_HOSTNAME: db
MYSQL_WEBDB_DATABASE: cacert
CSR_DIRECTORY: /srv/certs/csr
CRT_DIRECTORY: /srv/certs/crt
CRL_DIRECTORY: /srv/certs/crl
DEFAULT_HOSTNAME: www.cacert.localhost
SECURE_HOSTNAME: secure.cacert.localhost
TVERIFY_HOSTNAME: tverify.cacert.localhost
INSECURE_PORT: 8080
SECURE_PORT: 8443
RETURN_ADDRESS: "returns@cacert.localhost"
SMTP_HOST: smtp
env_file:
- ./.env
ports:
- "8080:80"
- "8443:443"
depends_on:
- db
- smtp
volumes:
- ./cacert-software:/www
- certstaging:/srv/certs
mgr:
build:
context: .
dockerfile: mgr.Dockerfile
env_file:
- ./.env
ports:
- "9443:443"
depends_on:
- db
- mail
volumes:
- ./cacert-mgr:/var/www/mgr
cats:
build:
context: .
dockerfile: cats.Dockerfile
env_file:
- ./.env
environment:
CATS_NORMAL_HOSTNAME: "cats.cacert.localhost:7443"
CATS_SECURE_HOSTNAME: "cats.cacert.localhost:7443"
MYSQL_CATS_DATABASE: cats
ports:
- "7443:443"
depends_on:
- db
volumes:
- ./cacert-cats:/var/www/cats
signer_client:
build:
context: .
dockerfile: signer_client.Dockerfile
env_file:
- ./.env
environment:
MYSQL_WEBDB_HOSTNAME: db
MYSQL_WEBDB_DATABASE: cacert
CSR_DIRECTORY: /srv/certs/csr
CRT_DIRECTORY: /srv/certs/crt
CRL_DIRECTORY: /srv/certs/crl
SMTP_HOST: smtp
volumes:
- certstaging:/srv/certs
- signersockets:/srv/sockets
depends_on:
- db
- smtp
- signer
signer:
build:
context: .
dockerfile: signer.Dockerfile
environment:
SIGNER_WORKDIR: /srv/ca/work
SIGNER_CA_CONFIG: /srv/caconfig
SIGNER_BASEDIR: /srv/ca
volumes:
- signersockets:/srv/sockets
- signerdata:/srv/ca
volumes:
db: { }
maildir: { }
certstaging: { }
signersockets: { }
signerdata: { }