compose.yaml 1.5 KB

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