ci: install SSH client in Alpine Linux for deployment
Fix CI failure caused by missing SSH client in node:20-alpine image. Problem: - Alpine Linux doesn't include SSH client by default - This caused CI to fail with '/bin/sh: ssh: not found' Solution: - Install openssh-client and rsync packages using apk - This enables SSH connections to production server This should resolve the final CI failure and allow successful deployment.
This commit is contained in:
+23
-21
@@ -112,27 +112,29 @@ steps:
|
||||
- dev
|
||||
|
||||
build-and-deploy:
|
||||
image: *node_image
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
SSH_PRIVATE_KEY:
|
||||
from_secret: ssh_private_key
|
||||
depends_on:
|
||||
- install-deps
|
||||
- lint
|
||||
- type-check
|
||||
commands:
|
||||
- echo "Building production artifacts"
|
||||
- npm run build
|
||||
- echo "Build completed"
|
||||
- ls -la dist/
|
||||
- echo "Deploying to production"
|
||||
- mkdir -p ~/.ssh
|
||||
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
|
||||
- chmod 600 ~/.ssh/id_rsa
|
||||
- echo "Pre-deployment checks"
|
||||
- ssh root@139.155.109.62 "echo 'Server connection OK'"
|
||||
image: node:20-alpine
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
NEXT_TELEMETRY_DISABLED: 1
|
||||
SSH_PRIVATE_KEY:
|
||||
from_secret: ssh_private_key
|
||||
depends_on:
|
||||
- install-deps
|
||||
- lint
|
||||
- type-check
|
||||
commands:
|
||||
- echo "Installing SSH client"
|
||||
- apk add --no-cache openssh-client rsync
|
||||
- echo "Building production artifacts"
|
||||
- npm run build
|
||||
- echo "Build completed"
|
||||
- ls -la dist/
|
||||
- echo "Deploying to production"
|
||||
- mkdir -p ~/.ssh
|
||||
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
|
||||
- chmod 600 ~/.ssh/id_rsa
|
||||
- echo "Pre-deployment checks"
|
||||
- ssh root@139.155.109.62 "echo 'Server connection OK'"
|
||||
- ssh root@139.155.109.62 "df -h | grep -E '/$|/home'"
|
||||
- echo "Syncing build artifacts to production server"
|
||||
- rsync -avz --delete dist/ root@139.155.109.62:/home/novalon/docker-app/novalon-website/dist/
|
||||
|
||||
Reference in New Issue
Block a user