开发者社区> 问答> 正文

从Gitlab CI构建Docker映像时环境变量丢失

我正在尝试使用Docker和Gitlab CI构建我的React / NodeJS项目。

当我手动构建映像时,我使用包含env vars的.env文件,一切都很好。

docker build --no-cache -f client/docker/local/Dockerfile . -t espace_client_client:local docker build --no-cache -f server/docker/local/Dockerfile . -t espace_client_api:local 但是,当使用Gitlab进行部署时,我可以成功构建映像,但是当我运行它时,客户端中的env vars为空。

这是我的gitlab CI:

image: node:10.15 variables: REGISTRY_PACKAGE_CLIENT_NAME: registry.gitlab.com/company/espace_client/client REGISTRY_PACKAGE_API_NAME: registry.gitlab.com/company/espace_client/api REGISTRY_URL: https://registry.gitlab.com DOCKER_DRIVER: overlay # Client Side REACT_APP_API_URL: https://api.espace-client.company.fr REACT_APP_DB_NAME: company REACT_APP_INFLUX: https://influx-prod.company.fr REACT_APP_INFLUX_LOGIN: admin REACT_APP_HOUR_GMT: 2

stages: - publish

docker-push-client: stage: publish before_script: - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $REGISTRY_URL image: docker:stable services: - docker:dind script: - docker build --no-cache -f client/docker/prod/Dockerfile . -t $REGISTRY_PACKAGE_CLIENT_NAME:latest - docker push $REGISTRY_PACKAGE_CLIENT_NAME:latest 这是客户端的Dockerfile

FROM node:10.15-alpine WORKDIR /app COPY package*.json ./ ENV NODE_ENV production

RUN npm -g install serve && npm install COPY . . RUN npm run build EXPOSE 3000 CMD [ "serve", "build", "-l", "3000" ] 为什么两个过程之间有这样的区别?

展开
收起
被纵养的懒猫 2019-09-27 09:52:04 1180 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载