mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-12 15:25:51 +00:00
105 lines
3.3 KiB
YAML
105 lines
3.3 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
|
|
|
|
services:
|
|
webapp:
|
|
image: ghcr.io/ocelot-social-community/ocelot-social/webapp:${OCELOT_VERSION:-latest}
|
|
build:
|
|
context: ./webapp
|
|
target: production
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- 3000:3000
|
|
# Storybook: Todo externalize, its not working anyways
|
|
# - 3002:3002
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT="3000"
|
|
- NODE_ENV="production"
|
|
# Application only envs
|
|
- HOST=0.0.0.0 # This is nuxt specific, alternative value is HOST=webapp
|
|
- GRAPHQL_URI=http://backend:4000
|
|
env_file:
|
|
- ./webapp/.env
|
|
|
|
frontend:
|
|
image: ghcr.io/ocelot-social-community/ocelot-social/frontend:${OCELOT_VERSION:-latest}
|
|
build:
|
|
context: ./frontend
|
|
target: production
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- 3002:3002
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT="3002"
|
|
- NODE_ENV="production"
|
|
# Application only envs
|
|
#- HOST=0.0.0.0 # This is nuxt specific, alternative value is HOST=webapp
|
|
#- GRAPHQL_URI=http://backend:4000
|
|
|
|
backend:
|
|
image: ghcr.io/ocelot-social-community/ocelot-social/backend:${OCELOT_VERSION:-latest}
|
|
build:
|
|
context: ./backend
|
|
target: production
|
|
depends_on:
|
|
- neo4j
|
|
ports:
|
|
- 4000:4000
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT="4000"
|
|
- NODE_ENV="production"
|
|
# Application only envs
|
|
- NEO4J_URI=bolt://neo4j:7687
|
|
- GRAPHQL_URI=http://backend:4000
|
|
- CLIENT_URI=http://webapp:3000
|
|
env_file:
|
|
- ./backend/.env
|
|
|
|
maintenance:
|
|
image: ghcr.io/ocelot-social-community/ocelot-social/maintenance:${OCELOT_VERSION:-latest}
|
|
build:
|
|
context: ./webapp
|
|
dockerfile: Dockerfile.maintenance
|
|
ports:
|
|
- 3001:80
|
|
|
|
neo4j:
|
|
image: ghcr.io/ocelot-social-community/ocelot-social/neo4j:community
|
|
build:
|
|
context: ./neo4j
|
|
# community edition 👆🏼, because we have no enterprise licence 👇🏼 at the moment
|
|
target: community
|
|
ports:
|
|
- 7687:7687
|
|
volumes:
|
|
- neo4j_data:/data
|
|
environment:
|
|
# settings reference: https://neo4j.com/docs/operations-manual/4.4/docker/ref-settings/
|
|
# TODO: This sounds scary for a production environment
|
|
- NEO4J_AUTH=none
|
|
- NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.*
|
|
- NEO4J_dbms_allow__format__migration=true
|
|
- NEO4J_dbms_allow__upgrade=true
|
|
# uncomment following line for Neo4j Enterprise version instead of Community version
|
|
# TODO: clarify if that is the only thing needed to unlock the Enterprise version
|
|
# - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
|
|
# set the name of the database to be used
|
|
# - NEO4J_dbms_default__database=graph.db
|
|
# - NEO4J_dbms_default__database=neo4j
|
|
# TODO: Remove the playground from production
|
|
# bring the database in offline mode to export or load dumps
|
|
# command: ["tail", "-f", "/dev/null"]
|
|
|
|
volumes:
|
|
neo4j_data:
|