docker-compose.yml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. services:
  27. api:
  28. image: registry.cosmobile.dev/pdf-generator:beta
  29. volumes:
  30. - "assets_images:/app/assets/images"
  31. - "assets_fonts:/app/assets/fonts"
  32. - "assets_jsons:/app/assets/jsons"
  33. - "assets_pdfs:/app/assets/pdfs"
  34. networks:
  35. - public
  36. environment:
  37. API_DOMAIN: ${API_DOMAIN}
  38. deploy:
  39. placement:
  40. constraints:
  41. - node.role == worker
  42. - node.labels.cosmobile.scope == services
  43. labels:
  44. - "traefik.enable=true"
  45. - "traefik.docker.network=public"
  46. - "traefik.http.routers.pdf-generator-api-prod-http.rule=Host(`pdf-generator.services.cosmobile.net`)"
  47. - "traefik.http.routers.pdf-generator-api-prod-http.entrypoints=http"
  48. - "traefik.http.routers.pdf-generator-api-prod-http.middlewares=https-redirect"
  49. - "traefik.http.routers.pdf-generator-api-prod-https.rule=Host(`pdf-generator.services.cosmobile.net`)"
  50. - "traefik.http.routers.pdf-generator-api-prod-https.entrypoints=https"
  51. - "traefik.http.routers.pdf-generator-api-prod-https.tls.certresolver=le"
  52. - "traefik.http.routers.pdf-generator-api-prod-https.middlewares=compressed@file"
  53. - "traefik.http.routers.pdf-generator-api-prod-https.tls.options=min12@file"
  54. - "traefik.http.services.pdf-generator-api-prod.loadbalancer.server.port=3001"
  55. frontend:
  56. image: registry.cosmobile.dev/pdf-generator-fe:beta
  57. networks:
  58. - public
  59. environment:
  60. API_URL: ${API_URL}
  61. deploy:
  62. placement:
  63. constraints:
  64. - node.role == worker
  65. - node.labels.cosmobile.scope == services
  66. labels:
  67. - "traefik.enable=true"
  68. - "traefik.docker.network=public"
  69. - "traefik.http.routers.pdf-generator-fe-prod-http.rule=Host(`pdf-generator-fe.services.cosmobile.net`)"
  70. - "traefik.http.routers.pdf-generator-fe-prod-http.entrypoints=http"
  71. - "traefik.http.routers.pdf-generator-fe-prod-http.middlewares=https-redirect"
  72. - "traefik.http.routers.pdf-generator-fe-prod-https.rule=Host(`pdf-generator-fe.services.cosmobile.net`)"
  73. - "traefik.http.routers.pdf-generator-fe-prod-https.entrypoints=https"
  74. - "traefik.http.routers.pdf-generator-fe-prod-https.tls.certresolver=le"
  75. - "traefik.http.routers.pdf-generator-fe-prod-https.middlewares=compressed@file"
  76. - "traefik.http.routers.pdf-generator-fe-prod-https.tls.options=min12@file"
  77. - "traefik.http.services.pdf-generator-fe-prod.loadbalancer.server.port=80"