Skip to content

🐛 [Fix]: 토큰 없어도 채팅방 입장 가능하게 수정 #71

🐛 [Fix]: 토큰 없어도 채팅방 입장 가능하게 수정

🐛 [Fix]: 토큰 없어도 채팅방 입장 가능하게 수정 #71

Workflow file for this run

name: Chat Server CI/CD
on:
push:
branches:
- develop
paths:
- 'apps/chat/**'
jobs:
build-and-push:
runs-on: ubuntu-latest
env:
IMAGE_NAME: chat-camon
CHAT_PORT: ${{ secrets.CHAT_PORT }}
REDIS_HOST: ${{ secrets.REDIS_HOST }}
REDIS_PORT: ${{ secrets.REDIS_PORT }}
REDIS_CHAT: ${{ secrets.REDIS_CHAT }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
API_SERVER_URL: ${{ secrets.API_SERVER_URL }}
HTTP_TIMEOUT: ${{ secrets.HTTP_TIMEOUT }}
steps:
- name: Checkout code
uses: actions/checkout@v2
# ncloud 로그인
- name: Log in to Ncloud Container Registry
env:
USERNAME: ${{ secrets.NCLOUD_ACCESS_KEY }}
PASSWORD: ${{ secrets.NCLOUD_SECRET_KEY }}
REGISTRY_URL: ${{ secrets.NCLOUD_REGISTRY_URL }}
run: |
echo "$PASSWORD" | docker login -u "$USERNAME" "$REGISTRY_URL" --password-stdin
# 도커 이미지 빌드
- name: Build Docker image
run: docker build --build-arg CHAT_PORT=$CHAT_PORT --build-arg REDIS_HOST=$REDIS_HOST --build-arg REDIS_PORT=$REDIS_PORT --build-arg REDIS_CHAT=$REDIS_CHAT --build-arg JWT_SECRET=$JWT_SECRET -f ./apps/chat/Dockerfile -t ${{ secrets.NCLOUD_REGISTRY_URL }}/$IMAGE_NAME:latest .
#이미지 ncloud에 업로드
- name: Push to Ncloud Container Registry
run: |
docker push ${{ secrets.NCLOUD_REGISTRY_URL }}/$IMAGE_NAME:latest
deploy-and-run:
runs-on: ubuntu-latest
needs: build-and-push
env:
IMAGE_NAME: chat-camon
CHAT_PORT: ${{ secrets.CHAT_PORT }}
REDIS_HOST: ${{ secrets.REDIS_HOST }}
REDIS_PORT: ${{ secrets.REDIS_PORT }}
REDIS_CHAT: ${{ secrets.REDIS_CHAT }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
NCLOUD_REGISTRY_URL: ${{ secrets.NCLOUD_REGISTRY_URL }}
API_SERVER_URL: ${{ secrets.API_SERVER_URL }}
HTTP_TIMEOUT: ${{ secrets.HTTP_TIMEOUT }}
steps:
- name: Checkout for docker-compose
uses: actions/checkout@v2
- name: Copy docker-compose file
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_SERVER_KEY }}
source: "docker-compose.yml"
target: "/home/${{ secrets.SERVER_USER }}/camon"
- name: SSH and deploy
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_SERVER_KEY }}
port: 22
envs: CHAT_PORT,REDIS_HOST,REDIS_PORT,REDIS_CHAT,JWT_SECRET,API_SERVER_URL,HTTP_TIMEOUT
script: |
cd /home/${{ secrets.SERVER_USER }}/camon
echo "CHAT_PORT=$CHAT_PORT" > .env
echo "REDIS_HOST=$REDIS_HOST" >> .env
echo "REDIS_PORT=$REDIS_PORT" >> .env
echo "REDIS_CHAT=$REDIS_CHAT" >> .env
echo "JWT_SECRET=$JWT_SECRET" >> .env
echo "API_SERVER_URL=$API_SERVER_URL" >> .env
echo "HTTP_TIMEOUT=$HTTP_TIMEOUT" >> .env
sudo docker login -u ${{secrets.NCLOUD_ACCESS_KEY}} -p ${{ secrets.NCLOUD_SECRET_KEY }} ${{ secrets.NCLOUD_REGISTRY_URL }}
sudo docker stop chat-camon || true
sudo docker rm chat-camon || true
sudo docker rmi ${{ secrets.NCLOUD_REGISTRY_URL }}/chat-camon:latest || true
sudo docker pull ${{ secrets.NCLOUD_REGISTRY_URL }}/chat-camon:latest
sudo docker tag ${{ secrets.NCLOUD_REGISTRY_URL }}/chat-camon:latest chat-camon
sudo docker-compose up -d chat
sudo docker image prune -f
- name: Check container status
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_SERVER_KEY }}
port: 22
script: |
sudo docker-compose ps chat
sudo docker-compose logs --tail=100 chat