docker-compose.yml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. version: "3.8"
  2. services:
  3. backend:
  4. build:
  5. context: ./backend
  6. target: musare_backend
  7. args:
  8. BACKEND_MODE: "${BACKEND_MODE:-prod}"
  9. restart: ${RESTART_POLICY:-unless-stopped}
  10. volumes:
  11. - ./.git:/opt/app/.parent_git:ro
  12. - ./backend/config:/opt/app/config
  13. - ./types:/opt/types
  14. environment:
  15. - BACKEND_MODE=${BACKEND_MODE:-prod}
  16. - CONTAINER_MODE=${CONTAINER_MODE:-prod}
  17. links:
  18. - mongo
  19. - redis
  20. stdin_open: true
  21. tty: true
  22. logging:
  23. driver: "json-file"
  24. options:
  25. max-size: "1m"
  26. max-file: "3"
  27. frontend:
  28. build:
  29. context: ./frontend
  30. target: musare_frontend
  31. args:
  32. FRONTEND_MODE: "${FRONTEND_MODE:-prod}"
  33. restart: ${RESTART_POLICY:-unless-stopped}
  34. user: root
  35. ports:
  36. - "${FRONTEND_HOST:-0.0.0.0}:${FRONTEND_PORT:-80}:80"
  37. volumes:
  38. - ./.git:/opt/app/.parent_git:ro
  39. - ./frontend/dist/config:/opt/app/dist/config
  40. - ./types:/opt/types
  41. environment:
  42. - FRONTEND_MODE=${FRONTEND_MODE:-prod}
  43. - CONTAINER_MODE=${CONTAINER_MODE:-prod}
  44. links:
  45. - backend
  46. logging:
  47. driver: "json-file"
  48. options:
  49. max-size: "1m"
  50. max-file: "3"
  51. mongo:
  52. image: docker.io/mongo:${MONGO_VERSION}
  53. restart: ${RESTART_POLICY:-unless-stopped}
  54. environment:
  55. - MONGO_INITDB_ROOT_USERNAME=admin
  56. - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
  57. - MONGO_INITDB_DATABASE=musare
  58. - MONGO_PORT=${MONGO_PORT:-27017}
  59. - MONGO_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
  60. - MONGO_USER_USERNAME=${MONGO_USER_USERNAME}
  61. - MONGO_USER_PASSWORD=${MONGO_USER_PASSWORD}
  62. volumes:
  63. - ./tools/docker/setup-mongo.sh:/docker-entrypoint-initdb.d/setup-mongo.sh
  64. - ${MONGO_DATA_LOCATION:-./db}:/data/db
  65. logging:
  66. driver: "json-file"
  67. options:
  68. max-size: "1m"
  69. max-file: "3"
  70. redis:
  71. image: docker.io/redis:7
  72. restart: ${RESTART_POLICY:-unless-stopped}
  73. command: "--notify-keyspace-events Ex --requirepass ${REDIS_PASSWORD} --appendonly yes"
  74. volumes:
  75. - /data
  76. logging:
  77. driver: "json-file"
  78. options:
  79. max-size: "1m"
  80. max-file: "3"