Skip to content

텍스트 수정

텍스트 수정 #20

Workflow file for this run

name: Build and Deploy Docker Image
on:
push:
branches:
- main
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Log in to Docker Hub
run: |
echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin
- name: Build and tag Docker image
run: |
docker build --no-cache -t ${{ secrets.DOCKER_HUB_USERNAME }}/cisco_cctv:latest .
docker tag ${{ secrets.DOCKER_HUB_USERNAME }}/cisco_cctv:latest ${{ secrets.DOCKER_HUB_USERNAME }}/cisco_cctv:latest
- name: Push Docker image to Docker Hub
run: |
docker push ${{ secrets.DOCKER_HUB_USERNAME }}/cisco_cctv:latest
deploy:
runs-on: ubuntu-latest
needs: build-and-push
steps:
- name: Install SSH and sshpass
run: |
sudo apt update
sudo apt install -y openssh-client sshpass
- name: Deploy to Server
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PORT: ${{ secrets.SSH_PORT }}
SSH_PASS: ${{ secrets.SSH_PASS }}
run: |
echo "Starting deployment..."
echo "!!"
echo "SSH command: ssh -o StrictHostKeyChecking=no -p $SSH_PORT $SSH_USER@$SSH_HOST"
echo "!!"
sshpass -p $SSH_PASS ssh -o StrictHostKeyChecking=no -p $SSH_PORT $SSH_USER@$SSH_HOST << 'EOF'
echo "succeed ssh login"
IMAGE="${{ secrets.DOCKER_HUB_USERNAME }}/cisco_cctv:latest"
sudo docker pull $IMAGE
sudo docker stop cisco_cctv || true
sudo docker rm cisco_cctv || true
sudo docker run -d --name cisco_cctv --network host -p 52048:52048 $IMAGE || echo "Failed to start container"
sudo docker logs cisco_cctv
sudo docker system prune -af
EOF