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 @@ +