Skip to content

Dev (#9)

Dev (#9) #24

Workflow file for this run

name: Docker Image CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build-docker-image:
runs-on: ubuntu-latest
steps:
- name: Check out the code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PWD }}
# 4. Docker 이미지 빌드
- name: Build Docker image
run: docker build -t ${{ secrets.DOCKER_USER }}/bada-py .
# 6. Docker Hub 이미지 푸시
- name: Push Docker image to DockerHub
run: docker push ${{ secrets.DOCKER_USER }}/bada-py
run-docker-image-on-ec2:
# build-docker-image 과정이 완료되어야 실행됩니다.
needs: build-docker-image
runs-on: self-hosted
steps:
# 1. 최신 이미지를 풀받습니다
- name: docker pull
run: sudo docker pull ${{ secrets.DOCKER_USER }}/bada-py
# 2. 기존의 컨테이너를 중지시킵니다
- name: Stop container if running
run: |
if [ "$(sudo docker ps -q -f name=bada-py-server)" ]; then
echo "Stopping container bada-py-server..."
sudo docker stop bada-py-server
else
echo "Container bada-py-server is not running. Skipping stop command."
fi
- name: Create .env file
run: echo "${{ secrets.BADA_PY_ENV }}" > ~/bada-py/.env
# 3. 최신 이미지를 컨테이너화하여 실행시킵니다
- name: docker run new container
run: sudo docker run --name bada-py-server --rm -d -p 8000:8000 --env-file ~/bada-py/.env ${{ secrets.DOCKER_USER }}/bada-py
# # 4. 미사용 이미지를 정리합니다
- name: Clean up unused images
run: |
sudo docker image prune -af