mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-12 23:35:50 +00:00
192 lines
5.2 KiB
YAML
192 lines
5.2 KiB
YAML
# This file defines the production settings. It is overwritten by docker-compose.override.yml,
|
|
# which defines the development settings. The override.yml is loaded by default. Therefore it
|
|
# is required to explicitly define if you want an production build:
|
|
# > docker-compose -f docker-compose.yml up
|
|
|
|
version: "3.4"
|
|
|
|
services:
|
|
########################################################
|
|
# FRONTEND #############################################
|
|
########################################################
|
|
frontend:
|
|
image: gradido/frontend:latest
|
|
build:
|
|
context: ./frontend
|
|
target: production
|
|
networks:
|
|
- external-net
|
|
- internal-net
|
|
ports:
|
|
- 3000:3000
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT=3000
|
|
# - BUILD_DATE="1970-01-01T00:00:00.00Z"
|
|
# - BUILD_VERSION="0.0.0.0"
|
|
# - BUILD_COMMIT="0000000"
|
|
- NODE_ENV="production"
|
|
# env_file:
|
|
# - ./.env
|
|
# - ./frontend/.env
|
|
|
|
########################################################
|
|
# ADMIN INTERFACE ######################################
|
|
########################################################
|
|
admin:
|
|
image: gradido/admin:latest
|
|
build:
|
|
context: ./admin
|
|
target: production
|
|
networks:
|
|
- external-net
|
|
- internal-net
|
|
ports:
|
|
- 8080:8080
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT=8090
|
|
# - BUILD_DATE="1970-01-01T00:00:00.00Z"
|
|
# - BUILD_VERSION="0.0.0.0"
|
|
# - BUILD_COMMIT="0000000"
|
|
- NODE_ENV="production"
|
|
# env_file:
|
|
# - ./.env
|
|
# - ./admin/.env
|
|
|
|
#########################################################
|
|
## MARIADB ##############################################
|
|
#########################################################
|
|
mariadb:
|
|
build:
|
|
context: ./mariadb
|
|
target: mariadb_server
|
|
environment:
|
|
- MARIADB_ALLOW_EMPTY_PASSWORD=1
|
|
- MARIADB_USER=root
|
|
networks:
|
|
- internal-net
|
|
ports:
|
|
- 3306:3306
|
|
volumes:
|
|
- db_vol:/var/lib/mysql
|
|
|
|
########################################################
|
|
# BACKEND ##############################################
|
|
########################################################
|
|
backend:
|
|
image: gradido/backend:latest
|
|
build:
|
|
# since we have to include the entities from ./database we cannot define the context as ./backend
|
|
# this might blow build image size to the moon ?!
|
|
context: ./
|
|
dockerfile: ./backend/Dockerfile
|
|
target: production
|
|
networks:
|
|
- internal-net
|
|
ports:
|
|
- 4000:4000
|
|
depends_on:
|
|
- mariadb
|
|
restart: always
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT=4000
|
|
- BUILD_DATE
|
|
- BUILD_VERSION
|
|
- BUILD_COMMIT
|
|
- NODE_ENV="production"
|
|
- DB_HOST=mariadb
|
|
# Application only envs
|
|
#env_file:
|
|
# - ./frontend/.env
|
|
|
|
########################################################
|
|
# DATABASE #############################################
|
|
########################################################
|
|
database:
|
|
image: gradido/database:production_up
|
|
build:
|
|
context: ./database
|
|
target: production_up
|
|
depends_on:
|
|
- mariadb
|
|
networks:
|
|
- internal-net
|
|
- external-net # this is required to fetch the packages
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
- BUILD_DATE
|
|
- BUILD_VERSION
|
|
- BUILD_COMMIT
|
|
- NODE_ENV="production"
|
|
- DB_HOST=mariadb
|
|
# Application only envs
|
|
#env_file:
|
|
# - ./frontend/.env
|
|
|
|
#########################################################
|
|
## LOGIN SERVER #########################################
|
|
#########################################################
|
|
login-server:
|
|
build:
|
|
context: ./login_server/
|
|
depends_on:
|
|
- mariadb
|
|
networks:
|
|
- internal-net
|
|
ports:
|
|
- 1200:1200
|
|
- 1201:1201
|
|
volumes:
|
|
- ./configs/login_server:/etc/grd_login
|
|
|
|
#########################################################
|
|
## NGINX ################################################
|
|
#########################################################
|
|
## nginx, connect login-server and community-server together (and php-fpm to community-server)
|
|
nginx:
|
|
build:
|
|
context: ./nginx/
|
|
networks:
|
|
- external-net
|
|
- internal-net
|
|
depends_on:
|
|
- frontend
|
|
- backend
|
|
- admin
|
|
ports:
|
|
- 80:80
|
|
|
|
#########################################################
|
|
## COMMUNITY SERVER (cakephp with php-fpm) ##############
|
|
#########################################################
|
|
community-server:
|
|
build:
|
|
context: .
|
|
target: community_server
|
|
dockerfile: ./community_server/Dockerfile
|
|
environment:
|
|
- DB_PASSWORD=''
|
|
- DB_USER='root'
|
|
- DB_DATABASE='gradido_community'
|
|
depends_on:
|
|
- mariadb
|
|
networks:
|
|
- internal-net
|
|
volumes:
|
|
- ./community_server/config/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
|
|
|
|
networks:
|
|
external-net:
|
|
internal-net:
|
|
internal: true
|
|
|
|
volumes:
|
|
db_vol:
|
|
|