Реагирование на переменные защищенной среды при производственной сборке - PullRequest
0 голосов
/ 04 февраля 2019

Я создаю приложение React и использую Docker и Jenkins для производственного развертывания ... Как я могу безопасно предоставить переменные среды для этого статического приложения?Это мой Dockerfile:

# stage 1: build the react app
FROM node:10.15.0 as react-build

WORKDIR /app
COPY . /app

ARG REACT_APP_API_ENTRYPOINT
ARG REACT_APP_CONNECT_URI
ARG REACT_APP_CONNECT_CLIENT_ID
ARG REACT_APP_CONNECT_SECRET
ARG REACT_APP_CONNECT_CALLBACK_URL

RUN yarn
ENV NODE_ENV=production
ENV REACT_APP_API_ENTRYPOINT=${REACT_APP_API_ENTRYPOINT}
ENV REACT_APP_CONNECT_URI=${REACT_APP_CONNECT_URI}
ENV REACT_APP_CONNECT_CLIENT_ID=${REACT_APP_CONNECT_CLIENT_ID}
ENV REACT_APP_CONNECT_SECRET=${REACT_APP_CONNECT_SECRET}
ENV REACT_APP_CONNECT_CALLBACK_URL=${REACT_APP_CONNECT_CALLBACK_URL}
RUN yarn run -s build

# Stage 2: build the production environment
FROM openresty/openresty:alpine
COPY deploy/files/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=react-build /app /usr/local/openresty/nginx/html

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /usr/local/openresty/nginx/logs/access.log && \
    ln -sf /dev/stderr /usr/local/openresty/nginx/logs/error.log

EXPOSE 8000
ENTRYPOINT ["nginx", "-g", "daemon off;"]

На данный момент процесс сборки открывает эти переменные: (

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете использовать dotenv , чтобы использовать файл .env для загрузки переменных среды во время процесса сборки (например, в веб-пакете с DefinePlugin).

Тогдавы просто RUN yarn run -s build без необходимости указывать каждую отдельную переменную env.

Существует даже пакет ярлыков npm для вашей настройки веб-пакета. WebPack-dotenv

...