我正在尝试使用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" ] 为什么两个过程之间有这样的区别?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。