Skip to content

dev에 main 명합 (#4) #36

dev에 main 명합 (#4)

dev에 main 명합 (#4) #36

Workflow file for this run

name: Frontend CD with Docker Hub
on:
push:
branches:
- dev # dev push되었을 때 yml 실행
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{secrets.DOCKERHUB_USERNAME}} # 도커 허브 이름
password: ${{secrets.DOCKERHUB_TOKEN}} # 도커 허브 access token
- name: Build and Release
run: |
docker build \
--build-arg VITE_API_URL=${{ secrets.VITE_API_URL }} \
-t ${{secrets.DOCKERHUB_REPO}} .
docker tag ${{secrets.DOCKERHUB_REPO}}:latest ${{secrets.DOCKERHUB_USERNAME}}/${{secrets.DOCKERHUB_REPO}}:latest
docker push ${{secrets.DOCKERHUB_USERNAME}}/${{secrets.DOCKERHUB_REPO}}:latest
- name: Deploy to server
uses: appleboy/ssh-action@master
id: deploy
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
script: |
sudo docker rm -f $(docker ps -aqf "name=^${{secrets.DOCKERHUB_REPO}}")
sudo docker pull ${{secrets.DOCKERHUB_USERNAME}}/${{secrets.DOCKERHUB_REPO}}:latest
sudo docker run \
-e VITE_API_URL=${{ secrets.VITE_API_URL }} \
-v /etc/letsencrypt:/etc/letsencrypt:ro \
-d -p 80:80 -p 443:443 \
--name ${{secrets.DOCKERHUB_REPO}} \
${{secrets.DOCKERHUB_USERNAME}}/${{secrets.DOCKERHUB_REPO}}:latest
sudo docker image prune -f