api/.gitea/workflows/deploy.yml

144 lines
2.8 KiB
YAML

services:
app:
image: gitea.leonmorival.com/leon-morival/bemeal-api:latest
container_name: bemeal-app
restart: unless-stopped
depends_on:
pgsql:
condition: service_healthy
redis:
condition: service_started
environment:
APP_NAME: "BeMeal"
APP_ENV: production
APP_DEBUG: "false"
APP_KEY: ${APP_KEY}
APP_URL: ${APP_URL}
APP_LOCALE: fr
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime"
DB_CONNECTION: pgsql
DB_HOST: pgsql
DB_PORT: 5432
DB_DATABASE: ${DB_DATABASE}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
REDIS_HOST: redis
REDIS_CLIENT: predis
QUEUE_CONNECTION: redis
SCOUT_DRIVER: meilisearch
MEILISEARCH_HOST: http://meilisearch:7700
MEILISEARCH_KEY: ${MEILISEARCH_KEY}
volumes:
- bemeal_storage:/var/www/html/storage/app
- bemeal_public:/var/www/html/storage/app/public
networks:
- nginx
- internal
horizon:
image: gitea.leonmorival.com/leon-morival/bemeal-api:latest
container_name: bemeal-horizon
restart: unless-stopped
command: php artisan horizon
depends_on:
pgsql:
condition: service_healthy
redis:
condition: service_started
environment:
APP_ENV: production
APP_KEY: ${APP_KEY}
DB_CONNECTION: pgsql
DB_HOST: pgsql
DB_PORT: 5432
DB_DATABASE: ${DB_DATABASE}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
REDIS_HOST: redis
REDIS_CLIENT: predis
QUEUE_CONNECTION: redis
volumes:
- bemeal_storage:/var/www/html/storage/app
networks:
- internal
pgsql:
image: postgres:15-alpine
container_name: bemeal-pgsql
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_DATABASE}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE}"]
interval: 5s
timeout: 5s
retries: 10
volumes:
- bemeal_pgsql:/var/lib/postgresql/data
networks:
- internal
redis:
image: redis:alpine
container_name: bemeal-redis
restart: unless-stopped
volumes:
- bemeal_redis:/data
networks:
- internal
meilisearch:
image: getmeili/meilisearch:latest
container_name: bemeal-meilisearch
restart: unless-stopped
environment:
MEILI_NO_ANALYTICS: "true"
MEILI_MASTER_KEY: ${MEILISEARCH_KEY}
volumes:
- bemeal_meili:/meili_data
networks:
- internal
volumes:
bemeal_pgsql:
bemeal_redis:
bemeal_storage:
bemeal_public:
bemeal_meili:
networks:
nginx:
external: true
internal:
driver: bridge