From 5fca2c05ef14bfa3201c104333b8dc614afcb0a7 Mon Sep 17 00:00:00 2001 From: Hexeong <123macanic@naver.com> Date: Fri, 26 Dec 2025 20:25:44 +0900 Subject: [PATCH 1/4] =?UTF-8?q?refactor:=20dev=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EC=97=90=EC=84=9C=EC=9D=98=20side-infra=20=EB=B0=B0=ED=8F=AC?= =?UTF-8?q?=20=EA=B3=BC=EC=A0=95=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-cd.yml | 33 +++++---------------------------- docker-compose.dev.yml | 36 +++--------------------------------- 2 files changed, 8 insertions(+), 61 deletions(-) diff --git a/.github/workflows/dev-cd.yml b/.github/workflows/dev-cd.yml index c1c7f42da..6f7dc3bdc 100644 --- a/.github/workflows/dev-cd.yml +++ b/.github/workflows/dev-cd.yml @@ -108,14 +108,11 @@ jobs: scp -i deploy_key.pem \ -o StrictHostKeyChecking=no \ ./docker-compose.dev.yml \ - ./docs/infra-config/config.alloy \ - ./docs/infra-config/nginx.dev.conf \ ${{ secrets.DEV_USERNAME }}@${{ secrets.DEV_HOST }}:/home/${{ secrets.DEV_USERNAME }}/solid-connection-dev/ # --- 서버에서 Docker Pull 및 재시작 --- - - name: Run docker compose and apply nginx config + - name: Run deployment on server run: | - # GITHUB_TOKEN을 이용해 서버에서 로그인 (App Token 불필요) ssh -i deploy_key.pem \ -o StrictHostKeyChecking=no \ ${{ secrets.DEV_USERNAME }}@${{ secrets.DEV_HOST }} \ @@ -127,38 +124,18 @@ jobs: export IMAGE_TAG_ONLY="${{ needs.build-and-push.outputs.image_tag }}" export FULL_IMAGE_NAME="ghcr.io/${OWNER_LOWERCASE}/solid-connection-dev:${IMAGE_TAG_ONLY}" - # 2. 서버가 GHCR에 로그인 (GITHUB_TOKEN 사용) - # App Token 대신 현재 워크플로우의 임시 토큰을 넘겨줍니다. + # 2. GHCR 로그인 & Pull echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - # 3. Docker Pull echo "Pulling new image: $FULL_IMAGE_NAME" docker pull $FULL_IMAGE_NAME - # 4. alloy 설정 및 Nginx 설정 적용 - cd /home/${{ secrets.DEV_USERNAME }}/solid-connection-dev - - mkdir -p ./docs/infra-config - - if [ -d "./docs/infra-config/config.alloy" ]; then - echo "Removing directory created by Docker..." - rm -rf ./docs/infra-config/config.alloy - fi - - mv -f ./config.alloy ./docs/infra-config/config.alloy - - mkdir -p ./nginx - mv ./nginx.dev.conf ./nginx/default.conf - sudo cp ./nginx/default.conf /etc/nginx/conf.d/default.conf - sudo nginx -t - sudo nginx -s reload - - # 5. Docker Compose 재시작 + # 3. Spring Boot 앱 재시작 echo "Restarting Docker Compose with tag: $IMAGE_TAG_ONLY" + cd /home/${{ secrets.DEV_USERNAME }}/solid-connection-dev docker compose -f docker-compose.dev.yml down IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.dev.yml up -d - # 6. 정리 작업 + # 4. 정리 작업 echo "Pruning dangling images..." docker image prune -f diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 29aaf5bb1..02554521f 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,44 +1,14 @@ version: '3.8' services: - redis: - image: redis:latest - container_name: redis - ports: - - "6379:6379" - - redis-exporter: - image: oliver006/redis_exporter - container_name: redis-exporter - ports: - - "9121:9121" - environment: - REDIS_ADDR: "redis:6379" - depends_on: - - redis - solid-connection-dev: image: ghcr.io/${OWNER_LOWERCASE}/solid-connection-dev:${IMAGE_TAG:-latest} container_name: solid-connection-dev - ports: - - "8080:8080" - - "8081:8081" + network_mode: "host" environment: - SPRING_PROFILES_ACTIVE=dev - - SPRING_DATA_REDIS_HOST=redis + - SPRING_DATA_REDIS_HOST=127.0.0.1 - SPRING_DATA_REDIS_PORT=6379 volumes: - ./logs:/var/log/spring - depends_on: - - redis - - alloy: - image: grafana/alloy:latest - container_name: alloy - ports: - - "12345:12345" - volumes: - - ./logs:/var/log/spring - - ./docs/infra-config/config.alloy:/etc/alloy/config.alloy:ro - environment: - - ALLOY_ENV=dev + restart: always From 9d9db7c40c6a34983d5d59f079418f5d8cf2c822 Mon Sep 17 00:00:00 2001 From: Hexeong <123macanic@naver.com> Date: Fri, 26 Dec 2025 20:25:53 +0900 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20prod=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EC=97=90=EC=84=9C=EC=9D=98=20side-infra=20=EB=B0=B0=ED=8F=AC?= =?UTF-8?q?=20=EA=B3=BC=EC=A0=95=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/prod-cd.yml | 27 +++----------------------- docker-compose.prod.yml | 36 +++-------------------------------- 2 files changed, 6 insertions(+), 57 deletions(-) diff --git a/.github/workflows/prod-cd.yml b/.github/workflows/prod-cd.yml index a7dda5ab4..4ca74ab66 100644 --- a/.github/workflows/prod-cd.yml +++ b/.github/workflows/prod-cd.yml @@ -124,8 +124,6 @@ jobs: scp -i deploy_key.pem \ -o StrictHostKeyChecking=no \ ./docker-compose.prod.yml \ - ./docs/infra-config/config.alloy \ - ./docs/infra-config/nginx.prod.conf \ ${{ secrets.USERNAME }}@${{ secrets.HOST }}:/home/${{ secrets.USERNAME }}/solid-connection-prod/ # --- 서버에서 Docker Pull 및 재시작 --- @@ -142,34 +140,15 @@ jobs: export IMAGE_TAG_ONLY="${{ needs.build-and-push.outputs.image_tag }}" export FULL_IMAGE_NAME="ghcr.io/${OWNER_LOWERCASE}/solid-connection-server:${IMAGE_TAG_ONLY}" - # 2. 서버가 GHCR에 로그인 (GITHUB_TOKEN 사용) + # 2. GHCR 로그인 & Pull # App Token 대신 현재 워크플로우의 임시 토큰을 사용합니다. echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - # 3. docker pull echo "Pulling new image: $FULL_IMAGE_NAME" docker pull $FULL_IMAGE_NAME - # 4. alloy 설정 및 Nginx 설정 적용 - cd /home/${{ secrets.USERNAME }}/solid-connection-prod - - mkdir -p ./docs/infra-config - - if [ -d "./docs/infra-config/config.alloy" ]; then - echo "Removing directory created by Docker..." - rm -rf ./docs/infra-config/config.alloy - fi - - mv -f ./config.alloy ./docs/infra-config/config.alloy - - mkdir -p ./nginx - mv ./nginx.prod.conf ./nginx/default.conf - sudo cp ./nginx/default.conf /etc/nginx/conf.d/default.conf - sudo nginx -t - sudo nginx -s reload - - # 5. Docker Compose 재시작 + # 3. Spring Boot 앱 재시작 echo "Restarting Docker Compose with tag: $IMAGE_TAG_ONLY" + cd /home/${{ secrets.USERNAME }}/solid-connection-prod docker compose -f docker-compose.prod.yml down OWNER_LOWERCASE=$OWNER_LOWERCASE IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.prod.yml up -d diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 5b26eecf9..77afba397 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,44 +1,14 @@ version: '3.8' services: - redis: - image: redis:latest - container_name: redis - ports: - - "6379:6379" - - redis-exporter: - image: oliver006/redis_exporter - container_name: redis-exporter - ports: - - "9121:9121" - environment: - REDIS_ADDR: "redis:6379" - depends_on: - - redis - solid-connection-server: image: ghcr.io/${OWNER_LOWERCASE}/solid-connection-server:${IMAGE_TAG:-latest} container_name: solid-connection-server - ports: - - "8080:8080" - - "8081:8081" + network_mode: "host" environment: - SPRING_PROFILES_ACTIVE=prod - - SPRING_DATA_REDIS_HOST=redis + - SPRING_DATA_REDIS_HOST=127.0.0.1 - SPRING_DATA_REDIS_PORT=6379 volumes: - ./logs:/var/log/spring - depends_on: - - redis - - alloy: - image: grafana/alloy:latest - container_name: alloy - ports: - - "12345:12345" - volumes: - - ./logs:/var/log/spring - - ./docs/infra-config/config.alloy:/etc/alloy/config.alloy:ro - environment: - - ALLOY_ENV=production + restart: always From d2cc19ea8cc6cbb305434a59197faa9eda7acfb5 Mon Sep 17 00:00:00 2001 From: Hexeong <123macanic@naver.com> Date: Fri, 26 Dec 2025 20:47:48 +0900 Subject: [PATCH 3/4] =?UTF-8?q?refactor:=20docker-compose=20=EA=B0=80=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=EB=90=98=EA=B3=A0=20=EC=9E=88=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EC=95=84=EB=8F=84=20=EC=8A=A4=ED=81=AC=EB=A6=BD?= =?UTF-8?q?=ED=8A=B8=EA=B0=80=20=EC=8B=A4=ED=8C=A8=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-cd.yml | 2 +- .github/workflows/prod-cd.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dev-cd.yml b/.github/workflows/dev-cd.yml index 6f7dc3bdc..51c8c1bc6 100644 --- a/.github/workflows/dev-cd.yml +++ b/.github/workflows/dev-cd.yml @@ -132,7 +132,7 @@ jobs: # 3. Spring Boot 앱 재시작 echo "Restarting Docker Compose with tag: $IMAGE_TAG_ONLY" cd /home/${{ secrets.DEV_USERNAME }}/solid-connection-dev - docker compose -f docker-compose.dev.yml down + docker compose -f docker-compose.dev.yml down || true IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.dev.yml up -d # 4. 정리 작업 diff --git a/.github/workflows/prod-cd.yml b/.github/workflows/prod-cd.yml index 4ca74ab66..47c4d2ea3 100644 --- a/.github/workflows/prod-cd.yml +++ b/.github/workflows/prod-cd.yml @@ -149,7 +149,7 @@ jobs: # 3. Spring Boot 앱 재시작 echo "Restarting Docker Compose with tag: $IMAGE_TAG_ONLY" cd /home/${{ secrets.USERNAME }}/solid-connection-prod - docker compose -f docker-compose.prod.yml down + docker compose -f docker-compose.prod.yml down || true OWNER_LOWERCASE=$OWNER_LOWERCASE IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.prod.yml up -d # 6. 정리 From e2b1ec4e99d20236eee3963567dc0a9275664780 Mon Sep 17 00:00:00 2001 From: Hexeong <123macanic@naver.com> Date: Fri, 26 Dec 2025 20:58:30 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20docker=20compose=20up=20=EC=8B=9C?= =?UTF-8?q?=EC=97=90=20=EC=82=AC=EC=9A=A9=ED=95=A0=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EB=B3=80=EC=88=98=20=EC=A4=91=20=EB=88=84=EB=9D=BD=EB=90=9C=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=EB=A5=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dev-cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-cd.yml b/.github/workflows/dev-cd.yml index 51c8c1bc6..9f5f33358 100644 --- a/.github/workflows/dev-cd.yml +++ b/.github/workflows/dev-cd.yml @@ -133,7 +133,7 @@ jobs: echo "Restarting Docker Compose with tag: $IMAGE_TAG_ONLY" cd /home/${{ secrets.DEV_USERNAME }}/solid-connection-dev docker compose -f docker-compose.dev.yml down || true - IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.dev.yml up -d + OWNER_LOWERCASE=$OWNER_LOWERCASE IMAGE_TAG=$IMAGE_TAG_ONLY docker compose -f docker-compose.dev.yml up -d # 4. 정리 작업 echo "Pruning dangling images..."