docker-compose.example.yml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. x-volumes: &volumes
  2. environment:
  3. XDG_CONFIG_HOME: /app
  4. volumes:
  5. - .env:/app/.env
  6. - cache-data:/app/bootstrap/cache:rw
  7. - storage-data:/app/storage:rw
  8. - vite-data:/app/public/build:rw
  9. - caddy-data:/app/caddy/data
  10. - caddy-config:/app/caddy/config
  11. services:
  12. nginx:
  13. image: ghcr.io/${GITHUB_PROJECT_NAME}/nginx:${IMAGE_TAG}
  14. restart: unless-stopped
  15. ports:
  16. - "80:80"
  17. application:
  18. image: ghcr.io/${GITHUB_PROJECT_NAME}/application:${IMAGE_TAG}
  19. <<: *volumes
  20. restart: unless-stopped
  21. command: php /app/artisan octane:start --caddyfile=Caddyfile --server=frankenphp --host=0.0.0.0 --port=9000 --max-requests=500
  22. depends_on:
  23. postgres:
  24. condition: service_healthy
  25. redis:
  26. condition: service_healthy
  27. reverb:
  28. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  29. <<: *volumes
  30. restart: unless-stopped
  31. command: php /app/artisan reverb:start --host=0.0.0.0 --port=${REVERB_PORT}
  32. horizon:
  33. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  34. <<: *volumes
  35. restart: unless-stopped
  36. command: php /app/artisan horizon
  37. healthcheck:
  38. test: php artisan horizon:status
  39. interval: 2s
  40. timeout: 5s
  41. start_period: 2s
  42. depends_on:
  43. postgres:
  44. condition: service_healthy
  45. redis:
  46. condition: service_healthy
  47. cron:
  48. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  49. <<: *volumes
  50. restart: unless-stopped
  51. command: /usr/bin/supercronic /etc/supercronic/laravel
  52. healthcheck:
  53. test: /usr/bin/supercronic -test /etc/supercronic/laravel
  54. interval: 2s
  55. timeout: 5s
  56. start_period: 2s
  57. depends_on:
  58. postgres:
  59. condition: service_healthy
  60. redis:
  61. condition: service_healthy
  62. laravel-optimize:
  63. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  64. <<: *volumes
  65. restart: no
  66. command: bash -c "php artisan optimize && php artisan migrate --force"
  67. depends_on:
  68. application:
  69. condition: service_healthy
  70. postgres:
  71. condition: service_healthy
  72. npm-build:
  73. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  74. <<: *volumes
  75. command: npm run build
  76. restart: no
  77. php-cli:
  78. image: ghcr.io/${GITHUB_PROJECT_NAME}/cli:${IMAGE_TAG}
  79. <<: *volumes
  80. restart: no
  81. volumes:
  82. cache-data: { }
  83. storage-data: { }
  84. vite-data: { }
  85. caddy-data: { }
  86. caddy-config: { }