-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build : 도커 허브 레포지토리 local & aws 이미지 push / env 파일 ec2 전송 추가
- Loading branch information
1 parent
a751954
commit bfd879c
Showing
1 changed file
with
57 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,7 @@ on: | |
push: | ||
branches: | ||
- main | ||
- GUTTOK-92 | ||
pull_request: | ||
|
||
|
||
|
@@ -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 | ||
|
@@ -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 |