전체 보기
🍀

배포 서버에서 Redis 실행(with 도커)

작성일자
2023/03/28
태그
DIARY_DEVELOP
프로젝트
BeachCombine
책 종류
1 more property

공부한 내용

도커로 Redis 컨테이너 사용해 배포 환경에서 Redis 사용

docker-compose.yml
atties 프로젝트
version: "3" services: redis: image: redis container_name: atties_redis application: image: atties_spring environment: SPRING_DATASOURCE_URL: jdbc:mysql:rdsUrl SPRING_DATASOURCE_USERNAME: admin SPRING_DATASOURCE_PASSWORD: 비밀번호 SPRING_REDIS_HOST: "redis" SPRING_REDIS_PORT: "6379" restart: always container_name: atties_spring ports: - "80:80" depends_on: - redis
C++
복사
beach-combine 프로젝트
version: "3" services: redis: image: redis container_name: beachcombine_redis application: image: beachcombine_spring environment: SPRING_DATASOURCE_URL: jdbc:mysql:rdsUrl SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 비밀번호 SPRING_REDIS_HOST: "redis" SPRING_REDIS_PORT: "6379" restart: always container_name: beachcombine_spring ports: - "8080:8080" depends_on: - redis
C++
복사

배포 서버에서 로그아웃 테스트

위에 docker-compose.yml을 잘 넣었다면 이제 할 일은 끝났다.
배포해보자 → 한 방에 성공! ㅠㅠㅠ 이 얼마만에 한방에 된건지..ㅠㅠㅠ 행복하다
.github/workflows/deploy.yml 파일 내 코드
name: Deploy on: push: branches: [ "develop" ] pull_request: # 원래 이 부분은 주석처리하는데, 지금은 테스트를 위해 주석 해제함 branches: [ "develop" ] # PR에 새 커밋올라왔을 때 배포 진행되게 하는 코드 permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: # 기본 체크아웃 - name: Checkout uses: actions/checkout@v3 # Gradlew 실행 허용 - name: Run chmod to make gradlew executable run: chmod +x ./gradlew # JDK 11 세팅 - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'temurin' # 환경 변수 설정 - name: Set environment values run: | cd ./src/main/resources touch ./env.properties echo "${{ secrets.ENV }}" > ./env.properties shell: bash # 환경 변수 설정 (JSON) - name: create-json id: create-json uses: jsdaniell/create-json@v1.2.2 with: name: "beach-combine-3770712535c0.json" json: ${{ secrets.BEACHCOMBINE }} dir: 'src/main/resources/' # Gradle build (Test 제외) - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean build -x test # Docker build - name: Docker build run: | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} docker build -t beach_combine . docker tag beach_combine choo000407/beach_combine:${GITHUB_SHA::7} docker push choo000407/beach_combine:${GITHUB_SHA::7} # Deploy - name: Deploy uses: appleboy/ssh-action@master with: host: 35.216.84.77 username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} passphrase: ${{ secrets.SSH_PASSPHRASE }} envs: GITHUB_SHA script: | sudo docker pull choo000407/beach_combine:${GITHUB_SHA::7} sudo docker tag choo000407/beach_combine:${GITHUB_SHA::7} beachcombine_spring sudo docker-compose up -d
C++
복사
최종 배포
ddl-auto create에서 none으로 바꾸기
initDB 때문에 ddl-auto none으로 하면 배포가 제대로 안됨. 해결법 찾기. 일단은 create으로 해줘서 해결함. 사실 시연용으로만 쓸거라 큰 문제는 없을 거 같음. 허나, 운영할 서비스였다면 큰 문제였을 것.
교훈) 처음부터 none으로 하쟈,,,,

하루 정리

TIL 작성하기
GDSC
6시 실습 멘토
BeachCombine
로그아웃 기능 배포하기 (배포 환경에 Redis 도입)