docker-compose.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. version: '3.7'
  2. services:
  3. noctbot:
  4. image: noctbot
  5. build:
  6. context: ./
  7. dockerfile: ./bot/Dockerfile
  8. restart: unless-stopped
  9. depends_on:
  10. - db
  11. - facedetect
  12. env_file:
  13. - .env
  14. - db.env
  15. volumes:
  16. - ./bot/stickers:/app/bot/stickers
  17. environment:
  18. NODE_ENV: production
  19. BOT_TOKEN: ${BOT_TOKEN}
  20. FORUM_PASS: ${FORUM_PASS}
  21. FORUM_API_KEY: ${FORUM_API_KEY}
  22. IGNORE_CHANGED_NEWS: ${IGNORE_CHANGED_NEWS}
  23. NPM_CONFIG_LOGLEVEL: info
  24. TYPEORM_USERNAME: ${DB_USERNAME}
  25. TYPEORM_PASSWORD: ${DB_PASSWORD}
  26. TYPEORM_DATABASE: ${DB_NAME}
  27. FACEDETECT_URL: facedetect
  28. facedetect:
  29. image: facedetect
  30. build:
  31. context: ./
  32. dockerfile: ./facedetect/Dockerfile
  33. restart: unless-stopped
  34. caddy:
  35. image: caddy
  36. volumes:
  37. - caddy-data:/data
  38. - caddy-config:/config
  39. - ./caddy_config/Caddyfile:/etc/caddy/Caddyfile
  40. ports:
  41. - "80:80"
  42. - "443:443"
  43. web:
  44. image: noctbot_web
  45. build:
  46. context: ./
  47. dockerfile: ./web/Dockerfile
  48. restart: unless-stopped
  49. depends_on:
  50. - caddy
  51. - db
  52. - noctbot
  53. env_file:
  54. - .env
  55. - db.env
  56. environment:
  57. NODE_ENV: production
  58. TYPEORM_USERNAME: ${DB_USERNAME}
  59. TYPEORM_PASSWORD: ${DB_PASSWORD}
  60. TYPEORM_DATABASE: ${DB_NAME}
  61. volumes:
  62. - web-data:/web_data
  63. db:
  64. image: postgres
  65. restart: unless-stopped
  66. env_file:
  67. - db.env
  68. environment:
  69. POSTGRES_PASSWORD: ${DB_PASSWORD}
  70. POSTGRES_USER: ${DB_USERNAME}
  71. volumes:
  72. - db-data:/var/lib/postgresql/data
  73. adminer:
  74. image: adminer
  75. restart: unless-stopped
  76. ports:
  77. - 3030:8080
  78. volumes:
  79. db-data:
  80. web-data:
  81. caddy-data:
  82. caddy-config: