docker-compose.yml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. version: "3.3"
  2. networks:
  3. public:
  4. external: true
  5. volumes:
  6. assets_images:
  7. driver_opts:
  8. type: "nfs"
  9. o: "addr=${NFS_IP},nolock,soft,rw"
  10. device: ":/mnt/storage/compagnia/pdf-generator/assets/images"
  11. assets_fonts:
  12. driver_opts:
  13. type: "nfs"
  14. o: "addr=${NFS_IP},nolock,soft,rw"
  15. device: ":/mnt/storage/compagnia/pdf-generator/assets/fonts"
  16. assets_jsons:
  17. driver_opts:
  18. type: "nfs"
  19. o: "addr=${NFS_IP},nolock,soft,rw"
  20. device: ":/mnt/storage/compagnia/pdf-generator/assets/jsons"
  21. assets_pdfs:
  22. driver_opts:
  23. type: "nfs"
  24. o: "addr=${NFS_IP},nolock,soft,rw"
  25. device: ":/mnt/storage/compagnia/pdf-generator/assets/pdfs"
  26. assets_static:
  27. driver_opts:
  28. type: "nfs"
  29. o: "addr=${NFS_IP},nolock,soft,rw"
  30. device: ":/mnt/storage/compagnia/pdf-generator/assets/static"
  31. services:
  32. api:
  33. image: registry.cosmobile.dev/pdf-generator:${API_VERSION}
  34. volumes:
  35. - "assets_images:/app/assets/images"
  36. - "assets_fonts:/app/assets/fonts"
  37. - "assets_jsons:/app/assets/jsons"
  38. - "assets_pdfs:/app/assets/pdfs"
  39. - "assets_static:/app/assets/static"
  40. networks:
  41. - public
  42. environment:
  43. API_DOMAIN: ${API_DOMAIN}
  44. deploy:
  45. placement:
  46. constraints:
  47. - node.role == manager
  48. labels:
  49. - "traefik.enable=true"
  50. - "traefik.docker.network=public"
  51. - "traefik.http.routers.pdf-generator-api-prod-http.rule=Host(`pdf-generator.services.cosmobile.net`)"
  52. - "traefik.http.routers.pdf-generator-api-prod-http.entrypoints=http"
  53. - "traefik.http.routers.pdf-generator-api-prod-http.middlewares=https-redirect"
  54. - "traefik.http.routers.pdf-generator-api-prod-https.rule=Host(`pdf-generator.services.cosmobile.net`)"
  55. - "traefik.http.routers.pdf-generator-api-prod-https.entrypoints=https"
  56. - "traefik.http.routers.pdf-generator-api-prod-https.tls.certresolver=le"
  57. - "traefik.http.routers.pdf-generator-api-prod-https.middlewares=compressed@file"
  58. - "traefik.http.routers.pdf-generator-api-prod-https.tls.options=min12@file"
  59. - "traefik.http.services.pdf-generator-api-prod.loadbalancer.server.port=3001"
  60. frontend:
  61. image: registry.cosmobile.dev/pdf-generator-fe:${FE_VERSION}
  62. networks:
  63. - public
  64. environment:
  65. API_URL: ${API_URL}
  66. deploy:
  67. placement:
  68. constraints:
  69. - node.role == manager
  70. labels:
  71. - "traefik.enable=true"
  72. - "traefik.docker.network=public"
  73. - "traefik.http.routers.pdf-generator-fe-prod-http.rule=Host(`pdf-generator-fe.services.cosmobile.net`)"
  74. - "traefik.http.routers.pdf-generator-fe-prod-http.entrypoints=http"
  75. - "traefik.http.routers.pdf-generator-fe-prod-http.middlewares=https-redirect"
  76. - "traefik.http.routers.pdf-generator-fe-prod-https.rule=Host(`pdf-generator-fe.services.cosmobile.net`)"
  77. - "traefik.http.routers.pdf-generator-fe-prod-https.entrypoints=https"
  78. - "traefik.http.routers.pdf-generator-fe-prod-https.tls.certresolver=le"
  79. - "traefik.http.routers.pdf-generator-fe-prod-https.middlewares=compressed@file"
  80. - "traefik.http.routers.pdf-generator-fe-prod-https.tls.options=min12@file"
  81. - "traefik.http.services.pdf-generator-fe-prod.loadbalancer.server.port=80"