Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions .github/workflows/docker-image-CD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,31 @@ jobs:
# lpilogue-fe 컨테이너가 이미 실행 중인 경우 중지 및 제거
- name: Stop lpilogue-fe
run: docker stop lpilogue-fe || true && docker rm lpilogue-fe || true

# cloudflare 컨테이너가 이미 실행 중인 경우 중지 및 제거
- name: Stop cloudflare
run: docker stop cloudflare || true && docker rm cloudflare || true
# react-app만 다시 실행
- name: Run Docker compose
run: docker compose rm -f react-app && docker compose up -d react-app
env:
DB_USER: ${{ secrets.DB_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
DB_HOST: ${{ secrets.DB_HOST }}
DB_NAME: ${{ secrets.DB_NAME }}
FILE_SERVER_URL: ${{ secrets.FILE_SERVER_URL }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
SPOTIFY_CLIENT_ID: ${{ secrets.SPOTIFY_CLIENT_ID }}
SPOTIFY_CLIENT_SECRET: ${{ secrets.SPOTIFY_CLIENT_SECRET }}
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
ROOT_PASSWORD: ${{ secrets.ROOT_PASSWORD }}
run: |
echo "DB_USER=$DB_USER" >> .env
echo "DB_PASSWORD=$DB_PASSWORD" >> .env
echo "DB_HOST=$DB_HOST" >> .env
echo "DB_NAME=$DB_NAME" >> .env
echo "FILE_SERVER_URL=FILE_SERVER_URL" >> .env
echo "GOOGLE_API_KEY=$GOOGLE_API_KEY" >> .env
echo "SPOTIFY_CLIENT_ID=$SPOTIFY_CLIENT_ID" >> .env
echo "SPOTIFY_CLIENT_SECRET=$SPOTIFY_CLIENT_SECRET" >> .env
echo "YOUTUBE_API_KEY=$YOUTUBE_API_KEY" >> .env
echo "ROOT_PASSWORD=$ROOT_PASSWORD" >> .env
docker compose rm -f react-app && docker compose up -d react-app
32 changes: 21 additions & 11 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,22 @@ services:
REC_HOST: "lpilogue-rec"
REC_PORT: "5000"
depends_on:
- spring-boot-app
- flask-app
- spring-boot-app
- flask-app
- cloudflare-app

spring-boot-app:
container_name: lpilogue-be
restart: on-failure
image: hadoroke/lpilogue-be:latest
ports:
- "52781:8080"
- "8080:8080"
environment:
SPRING_PROFILES_ACTIVE: "prod"
SPRING_DATASOURCE_URL: jdbc:mysql://lpilogue-db:3306/lpilogue?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true
# SPRING_DATASOURCE_URL: jdbc:mysql://lpilogue-db.c5msg0qqmmcw.ap-northeast-2.rds.amazonaws.com:3306/lpilogue?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: admin
SPRING_DATASOURCE_PASSWORD: dnwnswls2501
SPRING_DATASOURCE_USERNAME: ${DB_USER}
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD}
TZ: Asia/Seoul
depends_on:
- mysql-app
Expand All @@ -35,10 +36,10 @@ services:
image: mysql:8
restart: always
environment:
MYSQL_DATABASE: lpilogue
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: admin
MYSQL_PASSWORD: dnwnswls2501
MYSQL_DATABASE: ${DB_NAME}
MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
TZ: Asia/Seoul
ports:
- "3306:3306"
Expand All @@ -51,13 +52,22 @@ services:
image: hadoroke/lpilogue-rec:latest
environment:
TZ: Asia/Seoul
DB_USER: ${DB_USER}
DB_PASSWORD: ${DB_PASSWORD}
DB_HOST: ${DB_HOST}
DB_NAME: ${DB_NAME}
FILE_SERVER_URL: ${FILE_SERVER_URL}
GOOGLE_API_KEY: ${GOOGLE_API_KEY}
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET}
YOUTUBE_API_KEY: ${YOUTUBE_API_KEY}
ports:
- "59999:5000"
- "5000:5000"
depends_on:
- mysql-app

cloudflare-app:
container_name: cloudflare
restart: unless-stopped
image: cloudflare/cloudflared:latest
command: tunnel --no-autoupdate run --token eyJhIjoiM2FhNmJmMjU1NzdmMDQ1OThhMjYyMGEwMzg4OWVkMzYiLCJ0IjoiM2EzNTk5MTItNmZhYi00OGM0LWIxMDktODRhOTFjMzVmN2MwIiwicyI6Ik9UVm1NV1l3TW1RdE9XWTNOQzAwWkdRd0xXRTJZalV0TldSaFpESTBZek01TjJGbSJ9
command: tunnel --no-autoupdate --protocol http2 run --token eyJhIjoiM2FhNmJmMjU1NzdmMDQ1OThhMjYyMGEwMzg4OWVkMzYiLCJ0IjoiM2EzNTk5MTItNmZhYi00OGM0LWIxMDktODRhOTFjMzVmN2MwIiwicyI6Ik9UVm1NV1l3TW1RdE9XWTNOQzAwWkdRd0xXRTJZalV0TldSaFpESTBZek01TjJGbSJ9