# 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 ######################################################### ## NGINX ################################################ ######################################################### nginx: build: context: ./nginx/ networks: - external-net - internal-net depends_on: - frontend - backend - admin ports: - 80:80 networks: external-net: internal-net: internal: true volumes: db_vol: