diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml new file mode 100644 index 0000000..0b9e8ab --- /dev/null +++ b/.gitea/workflows/dev.yml @@ -0,0 +1,24 @@ +name: dev + +on: + push: + branches: + - master + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Write env file + env: + DEV_ENV: ${{ secrets.ENV_DEV }} + run: | + test -n "$ENV_DEV" + umask 077 + printf '%s\n' "$ENV_DEV" > .env + + - name: Deploy backend + run: docker compose -f docker-compose.dev.yml up -d --build --remove-orphans diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..dabaa35 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,67 @@ +x-backend: &backend + image: cofee-backend:dev + build: + context: . + dockerfile: Dockerfile + target: prod + env_file: + - .env + restart: unless-stopped + volumes: + - ~/srv/storage/cofee_backend_api/.certs:/app/.certs:ro + - ~/srv/storage/cofee_backend_api/.artifacts:/app/.artifacts + networks: + - services_local + +services: + api: + <<: *backend + container_name: cofee_backend_api + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + - "traefik.http.routers.cofee-backend.rule=Host(`api.trimgu.ru`)" + - "traefik.http.routers.cofee-backend.entrypoints=websecure" + - "traefik.http.routers.cofee-backend.service=cofee-backend" + - "traefik.http.services.cofee-backend.loadbalancer.server.port=8000" + networks: + - services_local + - proxy + healthcheck: + test: + [ + "CMD", + "python", + "-c", + "import urllib.request; + urllib.request.urlopen('http://localhost:8000/api/health/')", + ] + interval: 30s + timeout: 5s + retries: 3 + start_period: 30s + + worker: + <<: *backend + container_name: cofee_backend_worker + command: + [ + "dramatiq", + "cpv3.modules.tasks.service", + "--processes", + "1", + "--threads", + "2", + ] + healthcheck: + test: [ "CMD-SHELL", "pgrep -f dramatiq || exit 1" ] + interval: 30s + timeout: 5s + retries: 3 + start_period: 30s + +networks: + services_local: + external: true + proxy: + external: true diff --git a/docker-compose.yml b/docker-compose.local.yml similarity index 100% rename from docker-compose.yml rename to docker-compose.local.yml