fix: update deployment script for automatic .env loading and docker compose v2
All checks were successful
Basil CI/CD Pipeline / Code Linting (push) Successful in 58s
Basil CI/CD Pipeline / API Tests (push) Successful in 1m17s
Basil CI/CD Pipeline / Web Tests (push) Successful in 1m7s
Basil CI/CD Pipeline / Shared Package Tests (push) Successful in 55s
Basil CI/CD Pipeline / Security Scanning (push) Successful in 1m10s
Basil CI/CD Pipeline / Build All Packages (push) Successful in 1m32s
Basil CI/CD Pipeline / E2E Tests (push) Has been skipped
Basil CI/CD Pipeline / Build & Push Docker Images (push) Successful in 5m15s
Basil CI/CD Pipeline / Trigger Deployment (push) Successful in 11s

Fixed multiple issues with the deployment automation:

1. Deploy script now auto-loads .env file:
   - Added automatic sourcing of .env at script start
   - Uses set -a/set +a to export all variables
   - Ensures HARBOR_PASSWORD and other vars are available

2. Updated docker-compose to docker compose (V2):
   - Changed all docker-compose commands to docker compose
   - Fixes "command not found" errors on modern Docker

3. Updated systemd service configuration:
   - Changed to use EnvironmentFile instead of hardcoded values
   - Loads variables from /srv/docker-compose/basil/.env
   - Changed user from root to pkartch for security

These changes enable successful automated deployments from CI/CD webhook
triggers, pulling images from Harbor registry and restarting containers.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-15 20:59:38 +00:00
parent 01ac9458ca
commit d1b615f62e
2 changed files with 14 additions and 11 deletions

View File

@@ -1,17 +1,13 @@
[Unit]
Description=Basil Webhook Deployment Service
Description=Basil Webhook Receiver
After=network.target docker.service
Requires=docker.service
[Service]
Type=simple
User=root
User=pkartch
WorkingDirectory=/srv/docker-compose/basil
Environment="WEBHOOK_PORT=9000"
Environment="WEBHOOK_SECRET=changeme"
Environment="DOCKER_USERNAME=your-docker-username"
Environment="DOCKER_REGISTRY=docker.io"
Environment="IMAGE_TAG=latest"
EnvironmentFile=/srv/docker-compose/basil/.env
ExecStart=/srv/docker-compose/basil/scripts/webhook-receiver.sh
Restart=always
RestartSec=10