compose.yaml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. services:
  2. backend:
  3. build:
  4. args:
  5. - NODE_ENV=development
  6. context: backend
  7. command: npm run start-watch
  8. environment:
  9. - DATABASE_DB=example
  10. - DATABASE_USER=root
  11. - DATABASE_PASSWORD=/run/secrets/db-password
  12. - DATABASE_HOST=db
  13. - NODE_ENV=development
  14. ports:
  15. - 80:80
  16. - 9229:9229
  17. - 9230:9230
  18. secrets:
  19. - db-password
  20. volumes:
  21. - ./backend/src:/code/src:ro
  22. - ./backend/package.json:/code/package.json
  23. - ./backend/package-lock.json:/code/package-lock.json
  24. - back-notused:/opt/app/node_modules
  25. networks:
  26. - public
  27. - private
  28. depends_on:
  29. - db
  30. db:
  31. # We use a mariadb image which supports both amd64 & arm64 architecture
  32. image: mariadb:10.6.4-focal
  33. # If you really want to use MySQL, uncomment the following line
  34. #image: mysql:8.0.27
  35. command: '--default-authentication-plugin=mysql_native_password'
  36. restart: always
  37. secrets:
  38. - db-password
  39. volumes:
  40. - db-data:/var/lib/mysql
  41. networks:
  42. - private
  43. environment:
  44. - MYSQL_DATABASE=example
  45. - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db-password
  46. frontend:
  47. build:
  48. context: frontend
  49. target: development
  50. ports:
  51. - 3000:3000
  52. volumes:
  53. - ./frontend/src:/code/src
  54. - /code/node_modules
  55. networks:
  56. - public
  57. depends_on:
  58. - backend
  59. networks:
  60. public:
  61. private:
  62. volumes:
  63. back-notused:
  64. db-data:
  65. secrets:
  66. db-password:
  67. file: db/password.txt