Skip to content

Commit

Permalink
build : 도커 허브 레포지토리 local & aws 이미지 push / env 파일 ec2 전송 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
jucheolkang committed Feb 28, 2025
1 parent a751954 commit bfd879c
Showing 1 changed file with 57 additions and 6 deletions.
63 changes: 57 additions & 6 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- GUTTOK-92
pull_request:


Expand Down Expand Up @@ -51,7 +52,7 @@ jobs:
build-and-push:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/main'
#if: github.ref == 'refs/heads/main'

steps:
- name: Checkout repository
Expand Down Expand Up @@ -86,13 +87,63 @@ jobs:
DOCKER_TZ=${{ secrets.DOCKER_TZ }}
EOF
- name: Build Docker Image
- name: Build Local Docker Image
run: |
docker build -t guttok_app:latest .
docker build -f docker/Dockerfile.local -t guttok_app:local .
- name: Tag and Push to Docker Hub
- name: Build AWS Docker Image
run: |
docker build -f docker/Dockerfile.aws -t guttok_app:aws .
- name: Tag and Push Local Image to Docker Hub
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
export IMAGE_NAME="${{ secrets.DOCKERHUB_USERNAME }}/guttok_app:latest"
docker tag guttok_app:latest $IMAGE_NAME
export IMAGE_NAME="${{ secrets.DOCKERHUB_USERNAME }}/guttok_app:latest-local"
docker tag guttok_app:local $IMAGE_NAME
docker push $IMAGE_NAME
- name: Tag and Push AWS Image to Docker Hub
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
export IMAGE_NAME="${{ secrets.DOCKERHUB_USERNAME }}/guttok_app:latest-aws"
docker tag guttok_app:aws $IMAGE_NAME
docker push $IMAGE_NAME
deploy:
runs-on: ubuntu-latest
needs: build-and-push
#if: github.ref == 'refs/heads/main'

steps:
- name: Set up SSH key
run: |
echo "${{ secrets.EC2_SSH_KEY }}" > private_key.pem
chmod 600 private_key.pem
- name: Transfer .env file to EC2
run: |
scp -i private_key.pem .env ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:/home/${{ secrets.EC2_USER }}/guttok_app/.env
- name: Deploy to AWS EC2
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
echo "Setting permissions for .env file..."
chmod 600 /home/${{ secrets.EC2_USER }}/guttok_app/.env
echo "Pulling latest AWS Docker image..."
docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}"
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/guttok_app:latest-aws
echo "Stopping and removing old container..."
docker stop guttok_app || true
docker rm guttok_app || true
echo "Running new container..."
docker run -d --name guttok_app \
--env-file /home/${{ secrets.EC2_USER }}/guttok_app/.env \
-p 8080:8080 \
${{ secrets.DOCKERHUB_USERNAME }}/guttok_app:latest-aws

0 comments on commit bfd879c

Please sign in to comment.