Вот полный поток проблемы
1) Azure Конвейер сборки создает артефакт (docker изображение), используя следующие DockerFile
FROM hub.docker.prod.private.com/library/node:10.16-alpine as buildImage
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ENV PATH /app/node_modules/.bin:$PATH
ENV REACT_APP_SERVER_URL=${REACT_APP_SERVER_URL}
ENV REACT_APP_AD_APP_ID=${REACT_APP_AD_APP_ID}
ENV REACT_APP_REDIRECT_URL=${REACT_APP_REDIRECT_URL}
ENV REACT_APP_AUTHORITY=${REACT_APP_AUTHORITY}
COPY package.json /usr/src/app/
RUN npm install
RUN npm install react-scripts@3.0.1 -g
COPY . /usr/src/app
RUN npm run build
FROM hub.docker.prod.walmart.com/library/nginx:1.15.12-alpine
COPY --from=buildImage /usr/src/app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
2) И нажимает docker образ в Azure реестр контейнеров (ACR
).
3) Многоступенчатый конвейер Release извлекает образ из ACR
и развертывает его в azure службах приложений (QA -> Stage -> Prod
).
4) Конвейер выпуска использует значения переменных из группы переменных, определенной в конвейере выпуска, и я ожидаю, что эти переменные должны быть доступны в среде docker, чтобы заменить ENV
заполнителей переменных в DockerFile
.
Но после развертывания все переменные среды, которые используются внутри приложения, остаются неопределенными, не могли бы вы исправить меня, если возможно использовать среду docker так, как я упоминал выше.