105 lines
3 KiB
YAML
105 lines
3 KiB
YAML
|
##################################################################################################################
|
||
|
# Please put any variable changes for the environment or build arguments into the .env file of the source folder #
|
||
|
##################################################################################################################
|
||
|
|
||
|
version: '3.9'
|
||
|
|
||
|
services:
|
||
|
|
||
|
maria_db:
|
||
|
image: "mariadb:10.4.28"
|
||
|
restart: always
|
||
|
networks:
|
||
|
- backend
|
||
|
environment:
|
||
|
MARIADB_DATABASE: demo
|
||
|
MARIADB_USER: pse
|
||
|
MARIADB_PASSWORD: PSEsq1702!mdb
|
||
|
MARIADB_RANDOM_ROOT_PASSWORD: yes
|
||
|
volumes:
|
||
|
- database:/var/lib/mysql
|
||
|
healthcheck:
|
||
|
test: "/usr/bin/mysql --user=$${MARIADB_USER} --password=$${MARIADB_PASSWORD} --execute \"SHOW DATABASES;\""
|
||
|
interval: 5s
|
||
|
|
||
|
pse-backend:
|
||
|
restart: always
|
||
|
hostname: pse-backend
|
||
|
network_mode: "bridge"
|
||
|
build:
|
||
|
context: ./pse-server
|
||
|
dockerfile: Dockerfile
|
||
|
args:
|
||
|
SERVER_TIMEZONE: ${SERVER_TIMEZONE}
|
||
|
networks:
|
||
|
- backend
|
||
|
environment:
|
||
|
EMAIL_DASHBOARD_BASE_URL: http://${FRONTEND_DOMAIN}
|
||
|
EMAIL_VERIFICATION_URL: http://${BACKEND_DOMAIN}/api/2/auth/%s/verify.json
|
||
|
EMAIL_RESET_URL_PATH: /resetPassword
|
||
|
SPRING_MAIL_HOST: ${SPRING_MAIL_HOST}
|
||
|
SPRING_MAIL_PORT: ${SPRING_MAIL_PORT}
|
||
|
SPRING_MAIL_USERNAME: ${SPRING_MAIL_USERNAME}
|
||
|
SPRING_MAIL_PASSWORD: ${SPRING_MAIL_PASSWORD}
|
||
|
depends_on:
|
||
|
maria_db:
|
||
|
condition: service_healthy
|
||
|
links:
|
||
|
- maria_db:maria_db
|
||
|
|
||
|
pse-frontend:
|
||
|
restart: always
|
||
|
build:
|
||
|
context: ./pse-dashboard
|
||
|
dockerfile: Dockerfile
|
||
|
args:
|
||
|
VITE_BACKEND_URL: //${BACKEND_DOMAIN}
|
||
|
networks:
|
||
|
- frontend
|
||
|
|
||
|
reverse-proxy:
|
||
|
restart: always
|
||
|
environment:
|
||
|
NGINX_ENVSUBST_TEMPLATE_SUFFIX: ".tmpl"
|
||
|
FRONTEND_DOMAIN: ${FRONTEND_DOMAIN}
|
||
|
BACKEND_DOMAIN: ${BACKEND_DOMAIN}
|
||
|
build:
|
||
|
context: ./reverse-proxy
|
||
|
dockerfile: Dockerfile
|
||
|
networks:
|
||
|
- frontend
|
||
|
- backend
|
||
|
depends_on:
|
||
|
- pse-backend
|
||
|
- pse-frontend
|
||
|
# Uncomment volumes when using SSL (location of certificates)
|
||
|
volumes:
|
||
|
- ./reverse-proxy/letsencrypt:/letsencrypt
|
||
|
- ./reverse-proxy/letsencrypt/certs:/etc/letsencrypt
|
||
|
ports:
|
||
|
- 80:80
|
||
|
# Uncomment port when using SSL
|
||
|
- 443:443
|
||
|
|
||
|
|
||
|
######################################################################################
|
||
|
# Uncomment following text to create / renew SSL certificates for Front- and Backend #
|
||
|
######################################################################################
|
||
|
#
|
||
|
# certbot:
|
||
|
# image: certbot/certbot
|
||
|
# container_name: certbot
|
||
|
# volumes:
|
||
|
# - ./reverse-proxy/letsencrypt:/letsencrypt
|
||
|
# - ./reverse-proxy/letsencrypt/certs:/etc/letsencrypt
|
||
|
# command: certonly --webroot -w /letsencrypt -d ${FRONTEND_DOMAIN} -d ${BACKEND_DOMAIN} --email ${SPRING_MAIL_USERNAME} --agree-tos
|
||
|
# depends_on:
|
||
|
# - reverse-proxy
|
||
|
|
||
|
networks:
|
||
|
frontend:
|
||
|
backend:
|
||
|
|
||
|
volumes:
|
||
|
database:
|