From 455af41d0d6cce5cb58ad97c41ea9fac55fc3c90 Mon Sep 17 00:00:00 2001 From: ondal Date: Sat, 15 Feb 2025 15:06:01 +0900 Subject: [PATCH] release --- container/Dockerfile | 22 ++++++++++++++-------- public/index.html | 1 + public/runtime-env.js | 5 +++++ src/services/api.js | 5 +++++ 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 public/runtime-env.js diff --git a/container/Dockerfile b/container/Dockerfile index 69d553a..d00de7f 100644 --- a/container/Dockerfile +++ b/container/Dockerfile @@ -1,9 +1,6 @@ # Build stage FROM node:20-slim AS builder ARG PROJECT_FOLDER -ARG REACT_APP_MEMBER_URL -ARG REACT_APP_MYSUB_URL -ARG REACT_APP_RECOMMEND_URL ENV NODE_ENV=production @@ -20,13 +17,11 @@ RUN npm run build # Run stage FROM nginx:stable-alpine -# 시스템 환경변수 셋팅: api.js에서 사용하는 시스템 환경변수를 build시 셋팅해야 생성됨 -ENV REACT_APP_MEMBER_URL=${REACT_APP_MEMBER_URL} -ENV REACT_APP_MYSUB_URL=${REACT_APP_MYSUB_URL} -ENV REACT_APP_RECOMMEND_URL=${REACT_APP_RECOMMEND_URL} - ARG BUILD_FOLDER ARG EXPORT_PORT +ARG REACT_APP_MEMBER_URL +ARG REACT_APP_MYSUB_URL +ARG REACT_APP_RECOMMEND_URL # Create nginx user if it doesn't exist RUN adduser -S nginx || true @@ -34,6 +29,17 @@ RUN adduser -S nginx || true # Copy build files COPY --from=builder /app/build /usr/share/nginx/html +# Create runtime config +/* +index.html의 헤더에서 이 값을 읽어 환경변수를 생성함 +api.js에서 이 환경변수를 이용함: 예) window.__runtime_config__.MEMBER_URL +*/ +RUN echo "window.__runtime_config__ = { \ + MEMBER_URL: '${REACT_APP_MEMBER_URL}', \ + MYSUB_URL: '${REACT_APP_MYSUB_URL}', \ + RECOMMEND_URL: '${REACT_APP_RECOMMEND_URL}' \ +}" > /usr/share/nginx/html/runtime-env.js + # Copy and process nginx configuration COPY ${BUILD_FOLDER}/nginx.conf /etc/nginx/templates/default.conf.template diff --git a/public/index.html b/public/index.html index 6676e03..a2aa0a7 100644 --- a/public/index.html +++ b/public/index.html @@ -9,6 +9,7 @@ + 마이구독 diff --git a/public/runtime-env.js b/public/runtime-env.js new file mode 100644 index 0000000..a4f05fa --- /dev/null +++ b/public/runtime-env.js @@ -0,0 +1,5 @@ +window.__runtime_config__ = { + MEMBER_URL: 'http://localhost:8081', + MYSUB_URL: 'http://localhost:8082', + RECOMMEND_URL: 'http://localhost:8083' +}; diff --git a/src/services/api.js b/src/services/api.js index 0c3d4c2..1ac4039 100644 --- a/src/services/api.js +++ b/src/services/api.js @@ -2,9 +2,14 @@ import axios from 'axios'; // 서비스별 base URL +/* const MEMBER_URL = process.env.REACT_APP_MEMBER_URL || 'http://localhost:8081'; const MYSUB_URL = process.env.REACT_APP_MYSUB_URL || 'http://localhost:8082'; const RECOMMEND_URL = process.env.REACT_APP_RECOMMEND_URL || 'http://localhost:8083'; +*/ +const MEMBER_URL = window.__runtime_config__.MEMBER_URL || 'http://localhost:8081'; +const MYSUB_URL = window.__runtime_config__.MYSUB_URL || 'http://localhost:8082'; +const RECOMMEND_URL = window.__runtime_config__.RECOMMEND_URL || 'http://localhost:8083'; // 서비스별 axios 인스턴스 생성 const createAxiosInstance = (baseURL) => {