Skip to content

fix : 서버 연결 에러 해결 #95

fix : 서버 연결 에러 해결

fix : 서버 연결 에러 해결 #95

Workflow file for this run

name: CD
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Create env file
run: |
set +x
echo "SECRET_KEY=\"${{ secrets.SECRET_KEY }}\"" > .env
echo "DB_USERNAME=\"${{ secrets.DB_USERNAME }}\"" >> .env
echo "DB_DATABASE=\"${{ secrets.DB_DATABASE }}\"" >> .env
echo "DB_USER_PASSWORD=\"${{ secrets.DB_USER_PASSWORD }}\"" >> .env
echo "DB_ROOT_PASSWORD=\"${{ secrets.DB_ROOT_PASSWORD }}\"" >> .env
echo "DB_HOST=\"${{ secrets.DB_HOST }}\"" >> .env
echo "RABBITMQ_DEFAULT_USER=\"${{ secrets.RABBITMQ_DEFAULT_USER }}\"" >> .env
echo "RABBITMQ_DEFAULT_PASS=\"${{ secrets.RABBITMQ_DEFAULT_PASS }}\"" >> .env
echo "OPENAI_API_KEY=\"${{ secrets.OPENAI_API_KEY }}\"" >> .env
echo "NAVER_CLIENT_ID=\"${{ secrets.NAVER_CLIENT_ID }}\"" >> .env
echo "NAVER_CLIENT_SECRET=\"${{ secrets.NAVER_CLIENT_SECRET }}\"" >> .env
echo "AWS_ACCESS_KEY_ID=\"${{ secrets.AWS_ACCESS_KEY_ID }}\"" >> .env
echo "AWS_SECRET_ACCESS_KEY=\"${{ secrets.AWS_SECRET_ACCESS_KEY }}\"" >> .env
echo "AWS_STORAGE_BUCKET_NAME=\"${{ secrets.AWS_STORAGE_BUCKET_NAME }}\"" >> .env
echo "AWS_S3_REGION_NAME=\"${{ secrets.AWS_S3_REGION_NAME }}\"" >> .env
echo "AWS_REDIS_HOST=\"${{ secrets.AWS_REDIS_HOST }}\"" >> .env
echo "VITE_APP_KAKAO_API_KEY=\"${{ secrets.VITE_APP_KAKAO_API_KEY }}\"" >> .env
- name: Create frontend env file
run: |
set +x
cd frontend
echo "VITE_APP_KAKAO_API_KEY=\"${{ secrets.VITE_APP_KAKAO_API_KEY }}\"" > .env
# - name: Copy env file to EC2-lb1
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST1 }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: ".env"
# target: "compose"
# - name: Copy env file to EC2-lb2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST2 }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: ".env"
# target: "compose"
# - name: Copy env file to EC2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: ".env"
# target: "compose"
# - name: Copy docker-compose.lb.yml to EC2-lb1
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST1 }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: "docker-compose.lb.yml"
# target: "compose"
#
# - name: Copy docker-compose.lb.yml to EC2-lb2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST2 }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: "docker-compose.lb.yml"
# target: "compose"
#
# - name: Copy docker-compose.prod.yml to EC2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: "docker-compose.prod.yml"
# target: "compose"
# - name: Copy docker-compose.monitor.yml to EC2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: "docker-compose.monitor.yml"
# target: "compose"
# - name: Copy docker-compose.main.yml to EC2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.EC2_HOST }}
# username: ${{ secrets.EC2_USERNAME }}
# key: ${{ secrets.EC2_KEY }}
# port: ${{ secrets.EC2_PORT }}
# source: "docker-compose.main.yml"
# target: "compose"
- name: Copy nginx files to EC2
uses: appleboy/scp-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
source: "nginx"
target: "compose"
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push Docker backend image
uses: docker/build-push-action@v2
with:
context: ./backend
file: ./backend/Dockerfile.prod
push: true
tags: maaayreel/relaysketch-backend:latest
- name: Build and push Docker frontend image
uses: docker/build-push-action@v2
with:
context: ./frontend
file: ./frontend/Dockerfile.prod
push: true
tags: maaayreel/relaysketch-frontend:latest
# - name: Build and push Docker nginx image
# uses: docker/build-push-action@v2
# with:
# context: ./nginx
# file: ./nginx/Dockerfile
# push: true
# tags: maaayreel/relaysketch-nginx:latest
- name: Down EC2-lb1 Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd compose/nginx
sudo mv -f nginx.1.conf nginx.conf
docker exec -i nginx nginx -s reload
- name: Deploy to EC2-lb1 Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST1 }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd compose
docker-compose -f docker-compose.lb.yml down
docker system prune --all --volumes --force
docker-compose -f docker-compose.lb.yml up -d
- name: Down EC2-lb2 Server && Up EC2-lb1 Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd compose/nginx
sudo mv -f nginx.2.conf nginx.conf
docker exec -i nginx nginx -s reload
- name: Deploy to EC2-lb2 Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST2 }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd compose
docker-compose -f docker-compose.lb.yml down
docker system prune --all --volumes --force
docker-compose -f docker-compose.lb.yml up -d
- name: Up EC2-lb2 Server && Down >> Deploy >> UP to EC2 Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd compose/nginx
sudo mv -f nginx.3.conf nginx.conf
docker exec -i nginx nginx -s reload
cd ..
docker-compose -f docker-compose.main.yml down
docker system prune --all --volumes --force
docker-compose -f docker-compose.main.yml up -d
cd nginx
mv -f nginx.0.conf nginx.conf
docker exec -i nginx nginx -s reload