mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 15:25:57 +00:00
# Conflicts: # DOCKER_MORE_CLOSELY.md # docker-compose.override.yml # docker-compose.test.yml # docker-compose.yml
123 lines
4.1 KiB
YAML
123 lines
4.1 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:
|
|
|
|
########################################################
|
|
# WEBAPP ###############################################
|
|
########################################################
|
|
webapp:
|
|
# name the image so that it cannot be found in a DockerHub repository, otherwise it will not be built locally from the 'dockerfile' but pulled from there
|
|
image: ocelotsocialnetwork/webapp:local-production
|
|
build:
|
|
context: ./webapp
|
|
target: production
|
|
networks:
|
|
- external-net
|
|
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"
|
|
- BUILD_DATE
|
|
- BUILD_VERSION
|
|
- BUILD_COMMIT
|
|
- 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
|
|
|
|
########################################################
|
|
# BACKEND ##############################################
|
|
########################################################
|
|
backend:
|
|
# name the image so that it cannot be found in a DockerHub repository, otherwise it will not be built locally from the 'dockerfile' but pulled from there
|
|
image: ocelotsocialnetwork/backend:local-production
|
|
build:
|
|
context: ./backend
|
|
target: production
|
|
networks:
|
|
- external-net
|
|
- internal-net
|
|
depends_on:
|
|
- neo4j
|
|
ports:
|
|
- 4000:4000
|
|
volumes:
|
|
- backend_uploads:/app/public/uploads
|
|
environment:
|
|
# Envs used in Dockerfile
|
|
# - DOCKER_WORKDIR="/app"
|
|
# - PORT="4000"
|
|
- BUILD_DATE
|
|
- BUILD_VERSION
|
|
- BUILD_COMMIT
|
|
- NODE_ENV="production"
|
|
# Application only envs
|
|
- DEBUG=false
|
|
- NEO4J_URI=bolt://neo4j:7687
|
|
- GRAPHQL_URI=http://backend:4000
|
|
- CLIENT_URI=http://webapp:3000
|
|
env_file:
|
|
- ./backend/.env
|
|
|
|
########################################################
|
|
# NEO4J ################################################
|
|
########################################################
|
|
neo4j:
|
|
# name the image so that it cannot be found in a DockerHub repository, otherwise it will not be built locally from the 'dockerfile' but pulled from there
|
|
image: ocelotsocialnetwork/neo4j-community:local-production
|
|
build:
|
|
context: ./neo4j
|
|
# community edition 👆🏼, because we have no enterprise licence 👇🏼 at the moment
|
|
target: community
|
|
networks:
|
|
- internal-net
|
|
ports:
|
|
- 7687:7687
|
|
volumes:
|
|
- neo4j_data:/data
|
|
environment:
|
|
# TODO: This sounds scary for a production environment
|
|
- NEO4J_AUTH=none
|
|
- NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.*
|
|
# 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
|
|
# TODO: Remove the playground from production
|
|
|
|
########################################################
|
|
# MAINTENANCE ##########################################
|
|
########################################################
|
|
maintenance:
|
|
# name the image so that it cannot be found in a DockerHub repository, otherwise it will not be built locally from the 'dockerfile' but pulled from there
|
|
image: ocelotsocialnetwork/maintenance:local-production
|
|
build:
|
|
# TODO: Separate from webapp, this must be independent
|
|
context: ./webapp
|
|
dockerfile: Dockerfile.maintenance
|
|
networks:
|
|
- external-net
|
|
ports:
|
|
- 3001:80
|
|
|
|
networks:
|
|
external-net:
|
|
internal-net:
|
|
internal: true
|
|
|
|
volumes:
|
|
backend_uploads:
|
|
neo4j_data:
|