fix : 서버 연결 에러 해결 #95
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
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 |