Fixed the deployment script to properly expand variables in the SSH session by removing single quotes from the heredoc delimiter. Also added error handling with 'set -e' and removed dependency on /opt/silverlabs/website directory that doesn't exist. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
stages:
|
|
- build
|
|
- deploy
|
|
|
|
variables:
|
|
DOCKER_IMAGE: silverlabs-website
|
|
|
|
# Use Docker image
|
|
image: docker:latest
|
|
|
|
# Build Docker image
|
|
build:website:
|
|
stage: build
|
|
services:
|
|
- docker:dind
|
|
script:
|
|
- echo "Building SilverLabs Website Docker image..."
|
|
- docker build -t $DOCKER_IMAGE:latest -t $DOCKER_IMAGE:${CI_COMMIT_SHORT_SHA} .
|
|
- docker images
|
|
tags:
|
|
- docker
|
|
only:
|
|
- master
|
|
- main
|
|
|
|
# Deploy to production server (PORTAINER-01)
|
|
deploy:production:
|
|
stage: deploy
|
|
image: docker:latest
|
|
services:
|
|
- docker:dind
|
|
dependencies:
|
|
- build:website
|
|
before_script:
|
|
- apk add --no-cache sshpass openssh-client
|
|
script:
|
|
- echo "🚀 Deploying SilverLabs Website to silverlabs.uk (PORTAINER-01)"
|
|
|
|
# Build Docker image
|
|
- docker build -t $DOCKER_IMAGE:latest -t $DOCKER_IMAGE:${CI_COMMIT_SHORT_SHA} .
|
|
|
|
# Save and transfer image to server
|
|
- docker save $DOCKER_IMAGE:latest | gzip > /tmp/$DOCKER_IMAGE-image.tar.gz
|
|
- sshpass -p "Phenom12#." scp -o StrictHostKeyChecking=no /tmp/$DOCKER_IMAGE-image.tar.gz sysadmin@10.0.0.51:/tmp/
|
|
|
|
# Deploy on server
|
|
- |
|
|
sshpass -p "Phenom12#." ssh -o StrictHostKeyChecking=no sysadmin@10.0.0.51 << ENDSSH
|
|
set -e
|
|
|
|
# Load Docker image
|
|
docker load < /tmp/silverlabs-website-image.tar.gz
|
|
|
|
# Stop and remove old container
|
|
docker stop silverlabs-website 2>/dev/null || true
|
|
docker rm silverlabs-website 2>/dev/null || true
|
|
|
|
# Start new container
|
|
docker run -d \
|
|
--name silverlabs-website \
|
|
--restart unless-stopped \
|
|
-p 8100:80 \
|
|
silverlabs-website:latest
|
|
|
|
# Verify deployment
|
|
docker ps | grep silverlabs-website
|
|
|
|
# Cleanup
|
|
rm /tmp/silverlabs-website-image.tar.gz
|
|
echo "✅ Deployment complete!"
|
|
ENDSSH
|
|
environment:
|
|
name: production
|
|
url: https://silverlabs.uk
|
|
only:
|
|
- master
|
|
- main
|
|
tags:
|
|
- docker
|