Skip to content

Commit 2ed1bc7

Browse files
committed
Docker Example
1 parent 755ec44 commit 2ed1bc7

File tree

1 file changed

+30
-40
lines changed

1 file changed

+30
-40
lines changed

.github/workflows/docker-image.yml

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,38 @@
1-
name: CI/CD Direct Deploy to Server
1+
name: Auto Deploy
22

33
on:
44
push:
55
branches:
6-
- main
6+
- master
77

88
jobs:
99
deploy:
10-
runs-on: ubuntu-latest
10+
runs-on: self-hosted
1111
steps:
12-
- name: Checkout repo
13-
uses: actions/checkout@v4
14-
15-
- name: Deploy to server via SSH
16-
uses: appleboy/ssh-action@v1.1.0
17-
with:
18-
host: ${{ secrets.SERVER_HOST }}
19-
username: ${{ secrets.SERVER_USER }}
20-
key: ${{ secrets.SERVER_SSH_KEY }}
21-
script: |
22-
set -e
23-
APP_NAME=iiitt-new-dev
24-
echo "Updating repository..."
25-
git fetch origin main
26-
git pull origin main
27-
28-
if [ "$(docker ps -q -f name=$APP_NAME)" ]; then
29-
echo "Backing up current container..."
30-
docker commit $APP_NAME ${IMAGE_NAME}:backup
31-
docker stop $APP_NAME || true
32-
docker rm $APP_NAME || true
33-
fi
34-
35-
echo "Building new image..."
36-
docker build -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${COMMIT_SHA} .
37-
38-
echo "Running new container..."
39-
docker run -d --name $APP_NAME -p ${SERVER_PORT}:${DOCKER_PORT} ${IMAGE_NAME}:latest
40-
41-
echo "Cleaning up old images..."
42-
docker image prune -a --filter "until=48h" --filter "dangling=true" -f
43-
for img in $(docker images -q); do
44-
if ! docker ps -a --format '{{.Image}}' | grep -q $img; then
45-
echo "Removing unused image $img"
46-
docker rmi -f $img || true
47-
fi
48-
done
12+
- uses: actions/checkout@v4
13+
14+
- name: Build & Deploy Docker
15+
run: |
16+
set -e
17+
APP_NAME=iiitt-dev-website
18+
IMAGE_NAME=${APP_NAME}
19+
COMMIT_SHA=${GITHUB_SHA::7}
20+
SERVER_PORT=4908
21+
DOCKER_PORT=3000
22+
23+
cd /var/www/html/iiitt.ac.in
24+
25+
git pull
26+
27+
echo "Stopping old container if running..."
28+
docker stop $APP_NAME || true
29+
docker rm $APP_NAME || true
30+
31+
echo "Building Docker image..."
32+
docker build -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${COMMIT_SHA} .
33+
34+
echo "Starting new container..."
35+
docker run -d --name $APP_NAME -p ${SERVER_PORT}:${DOCKER_PORT} ${IMAGE_NAME}:latest
36+
37+
echo "Cleanup dangling images..."
38+
docker image prune -f --filter "dangling=true"

0 commit comments

Comments
 (0)