我一直在努力找出为什么在使用GitLab Auto DevOps并将其部署到GKE时create-react-app
应用程序无法正确显示的原因。我认为这与我为create-react-app
提供服务的方式以及入口控制器的工作方式有关,但是我不确定。
对于生产而言,create-react-app
建议先使用yarn build
,然后再封装serve,但我不认为serve
和Ingress-controller可以很好地配合使用。供参考的是我的Dockerfile:
Dockerfile
FROM node:8.9.3-alpine
ARG NODE_ENV=production
ENV NODE_ENV=$NODE_ENV
# Set a working directory
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN set -ex; \
if [ "$NODE_ENV" = "production" ]; then \
yarn install --no-cache --frozen-lockfile --production; \
npm install -g serve; \
elif [ "$NODE_ENV" = "test" ]; then \
touch yarn-error.log; \
mkdir -m 777 build; \
yarn install --no-cache --frozen-lockfile; \
chown -R node:node build node_modules package.json yarn.lock yarn-error.log; \
else \
touch yarn-error.log; \
mkdir -p -m 777 build node_modules /home/node/.cache/yarn; \
chown -R node:node build node_modules package.json yarn.lock yarn-error.log /home/node/.cache/yarn; \
fi;
COPY .env build* ./build/
USER node
CMD [ "serve", "-s", "build" ]
我的应用程序非常简单,它只有一个页面,其中包含一些虚拟路由。
当我推动精通整个管道时,结果是某种程度上呈现了我的项目文件结构的视图。我查看了日志,唯一的细化之处似乎是表明有任何问题,除了网站的状态是WARN
我的访问控制日志:
error obtaining PEM from secret app-6174385/production-auto-deploy-tls: error retrieving secret app-6174385/production-auto-deploy-tls: secret app-6174385/production-auto-deploy-tls was not found
有没有人成功通过GitLab的Auto DevOps将create-react-app部署到GKE,如果可以的话,我真的可以使用一些指导。另外,很高兴提供任何其他有用的信息!