kubesphere-console前端源码打包镜像

文章讲述了在打包Kubesphere镜像时遇到的长时间编译和易出错的问题。作者通过修改Dockerfile,避免了在镜像中重新编译代码,从而减少了耗时并提高了打包成功率。修改后的Dockerfile直接使用已编译的文件,成功缩短了构建时间。
摘要由CSDN通过智能技术生成

汇总

起因:根据官方文件内容可以看出,他在打包镜像时会拉取环境依赖然后重新编译代码。
问题:这一步耗时极长,且容易报错,在执行过程中一旦中途报错就会全功尽其,特别伤,而且即使每次打包都没问题,耗时也太长了,基本一个小时起步,不实用。
解决:根据上述情况,在尝试打包的过程中也在疑惑为什么他不直接将已经打包好的代码黏贴到镜像中而是要在镜像中重新打包呢?于是做对应尝试。
结果:成功,按个人整理的方式可以打包成功镜像,且运行无误。

kubesphere官方git的打包的DockerFile文件

FROM node:12-alpine3.14 as builder

ARG YARN_VERSION=1.22.4

WORKDIR /kubesphere
ADD . /kubesphere/

RUN apk add --no-cache --virtual .build-deps ca-certificates python2 python3 py3-pip make openssl g++ bash
RUN npm install yarn@${YARN_VERSION}

RUN yarn && yarn build

# Copy compiled files
RUN mkdir -p /out/server
RUN mv /kubesphere/dist/ /out/
RUN mv /kubesphere/server/locales \
       /kubesphere/server/public \
       /kubesphere/server/views \
       /kubesphere/server/sample \
       /kubesphere/server/config.yaml /out/server/
#RUN ["/bin/bash", "-c", "mv /kubesphere/server/{locales,public,sample,views,config.yaml} /out/server/"]
RUN mv /kubesphere/package.json /out/

##############
# Final Image
##############
FROM node:12-alpine3.14 as base_os_context


RUN adduser -D -g kubesphere -u 1002 kubesphere && \
    mkdir -p /opt/kubesphere/console && \
    chown -R kubesphere:kubesphere /opt/kubesphere/console


WORKDIR /opt/kubesphere/console
COPY --from=builder /out/ /opt/kubesphere/console/


RUN mv dist/server.js server/server.js
USER kubesphere

EXPOSE 8080

CMD ["npm", "run", "serve"]

修改后的Dockerfile文件


FROM node:12-alpine3.14 as builder
ARG YARN_VERSION=1.22.4

WORKDIR /kubesphere
ADD . /kubesphere/
COPY dist/ /kubesphere/dist
COPY server/ /kubesphere/server
COPY package.json /kubesphere

# Copy compiled files
RUN mkdir -p /out/server
RUN mv /kubesphere/dist/ /out/
RUN mv /kubesphere/server/locales \
       /kubesphere/server/public \
       /kubesphere/server/views \
       /kubesphere/server/sample \
       /kubesphere/server/config.yaml /out/server/
RUN mv /kubesphere/package.json /out/

##############
# Final Image
##############
FROM node:12-alpine3.14 as base_os_context


RUN adduser -D -g kubesphere -u 1002 kubesphere && \
    mkdir -p /opt/kubesphere/console && \
    chown -R kubesphere:kubesphere /opt/kubesphere/console


WORKDIR /opt/kubesphere/console
COPY --from=builder /out/ /opt/kubesphere/console/


RUN mv dist/server.js server/server.js
USER kubesphere


EXPOSE 8080


CMD ["npm", "run", "serve"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值