Files
marketing-parser/DEPLOYMENT.md
T

46 lines
2.2 KiB
Markdown

# Deployment
This repository now uses the same GitLab shell-runner deployment pattern as `call-center`: no project CI/CD variables are required for the normal push deploy path.
## What happens on push
1. GitLab runs the existing `test` job.
2. A dedicated shell runner with tag `marketing-parser-prod` picks up `deploy_production`.
3. The runner syncs the repository into `/home/gitlab-runner/deploy/marketing-parser`.
4. The runner builds a local Docker image from that synced checkout.
5. Docker Compose recreates `konturai-parser-app` from [deployment/docker-compose.server.yml](/root/marketing-parser/deployment/docker-compose.server.yml:1).
## Files used
- [.gitlab-ci.yml](/root/marketing-parser/.gitlab-ci.yml:1)
- [deployment/docker-compose.server.yml](/root/marketing-parser/deployment/docker-compose.server.yml:1)
- [scripts/deploy_gitlab.sh](/root/marketing-parser/scripts/deploy_gitlab.sh:1)
- [scripts/bootstrap_gitlab_deploy.sh](/root/marketing-parser/scripts/bootstrap_gitlab_deploy.sh:1)
- [scripts/install_gitlab_runner.sh](/root/marketing-parser/scripts/install_gitlab_runner.sh:1)
## One-time server setup
Install and register a shell runner on the target server:
```bash
cd /root/marketing-parser
RUNNER_TOKEN=glrt-xxxxxxxx bash scripts/install_gitlab_runner.sh
```
Then bootstrap the production env file from the current `konturai-parser-app` container:
```bash
cd /root/marketing-parser
bash scripts/bootstrap_gitlab_deploy.sh
```
That writes `/home/gitlab-runner/deploy/marketing-parser/.env.production`, which is used by the deploy job.
## Important notes
- The deploy job runs for pushes and manual web-triggered pipelines on the branch that contains this CI configuration.
- The runner user must have Docker access.
- This setup expects a host `shell` runner. A minimal `gitlab/gitlab-runner:alpine` container is not enough unless you also provide Docker, Compose, and `rsync` inside that runner environment.
- This deploy path is intentionally independent from `/root/docker-compose.yaml` because `/root` is not accessible to the `gitlab-runner` user.
- The deployment compose file joins the existing external Docker network `common_network` and publishes the service alias `parser-service`.