docker-compose.yml 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. services:
  2. migrate:
  3. image: irdb-api:latest
  4. build: { context: ./api }
  5. command: migrate
  6. env_file: .env
  7. volumes:
  8. - irdb-data:/data
  9. restart: "no"
  10. api:
  11. image: irdb-api:latest
  12. command: api
  13. env_file: .env
  14. ports:
  15. - "8081:8081"
  16. volumes:
  17. - irdb-data:/data
  18. depends_on:
  19. migrate:
  20. condition: service_completed_successfully
  21. healthcheck:
  22. test: ["CMD", "wget", "-qO-", "http://localhost:8081/healthz"]
  23. interval: 30s
  24. timeout: 5s
  25. retries: 3
  26. restart: unless-stopped
  27. ui:
  28. image: irdb-ui:latest
  29. build: { context: ./ui }
  30. env_file: .env
  31. ports:
  32. - "8080:8080"
  33. depends_on:
  34. api:
  35. condition: service_healthy
  36. healthcheck:
  37. test: ["CMD", "wget", "-qO-", "http://localhost:8080/healthz"]
  38. interval: 30s
  39. timeout: 5s
  40. retries: 3
  41. restart: unless-stopped
  42. # Uncomment to use MySQL. Also set DB_DRIVER=mysql in .env.
  43. # mysql:
  44. # image: mysql:8
  45. # environment:
  46. # MYSQL_DATABASE: ${DB_MYSQL_DATABASE}
  47. # MYSQL_USER: ${DB_MYSQL_USERNAME}
  48. # MYSQL_PASSWORD: ${DB_MYSQL_PASSWORD}
  49. # MYSQL_ROOT_PASSWORD: ${DB_MYSQL_ROOT_PASSWORD}
  50. # volumes:
  51. # - mysql-data:/var/lib/mysql
  52. # healthcheck:
  53. # test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
  54. # interval: 10s
  55. # timeout: 5s
  56. # retries: 10
  57. # restart: unless-stopped
  58. volumes:
  59. irdb-data:
  60. # mysql-data: