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
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:
@@ -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
|
||||
|
||||
@@ -8,6 +8,13 @@ set -e # Exit on error
|
||||
# Configuration
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
# Load environment variables from .env file if it exists
|
||||
if [ -f "$PROJECT_DIR/.env" ]; then
|
||||
set -a # automatically export all variables
|
||||
source "$PROJECT_DIR/.env"
|
||||
set +a
|
||||
fi
|
||||
LOG_FILE="$PROJECT_DIR/deploy.log"
|
||||
BACKUP_DIR="$PROJECT_DIR/backups"
|
||||
DOCKER_REGISTRY="${DOCKER_REGISTRY:-harbor.pkartchner.com}"
|
||||
@@ -135,11 +142,11 @@ restart_containers() {
|
||||
|
||||
# Stop containers
|
||||
log "Stopping containers..."
|
||||
docker-compose down || warning "Failed to stop some containers"
|
||||
docker compose down || warning "Failed to stop some containers"
|
||||
|
||||
# Start containers with new images
|
||||
log "Starting containers with new images..."
|
||||
docker-compose up -d || {
|
||||
docker compose up -d || {
|
||||
error "Failed to start containers"
|
||||
exit 1
|
||||
}
|
||||
@@ -165,7 +172,7 @@ health_check() {
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then
|
||||
error "API health check failed after $MAX_RETRIES attempts"
|
||||
docker-compose logs api
|
||||
docker compose logs api
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -177,7 +184,7 @@ health_check() {
|
||||
log "Web container is running"
|
||||
else
|
||||
error "Web container is not running"
|
||||
docker-compose logs web
|
||||
docker compose logs web
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user