官方模板
思考
nodejs项目运行在nginx环境中和运行在nodejs环境中的区别?
方案3
kubernetes中可以用initContainer进行前期制作
kubesphere中可以用devops直接制作
方案1(做出来的镜像比较大)
#https://registry.hub.docker.com/_/node
FROM node:16.14.0-alpine3.15
#安装git
RUN apt-get update && apt-get install -y git
#配置环境变量
ENTRYPOINT ["git"]
#切换目录,指定源码克隆后保存位置
WORKDIR /usr/local/code
#拉取源代码
#git clone http://用户名:密码@仓库
#如果私有仓卡记得加账号密码
RUN git clone https://gitee.com/agricultureiot/demo.git
#进入源码项目文件内:pom.xml
WORKDIR /usr/local/code/demo
#安装依赖,淘宝镜像
RUN npm install --registry=https://registry.npm.taobao.org
#声明项目所用端口
EXPOSE 3000
#启动程序,npm run dev/serve/build
ENTRYPOINT ["npm ","start"]
方案2(node.js)
#git作为基础镜像
FROM bitnami/git
#切换目录,指定源码克隆后保存位置
WORKDIR /usr/local/code
#拉取源代码
#git clone http://用户名:密码@仓库
#如果私有仓卡记得加账号密码
RUN git clone https://gitee.com/agricultureiot/demo.git
FROM node:16.14.0-alpine3.15
#切换目录,指定编译源码位置
WORKDIR /usr/local/code
#将源码复制到下一个镜像中
COPY --from=0 /usr/local/code/demo /usr/local/code
#安装依赖,淘宝镜像
RUN npm install --registry=https://registry.npm.taobao.org
#声明项目所用端口
EXPOSE 3000
#启动程序,npm run dev/serve/build
ENTRYPOINT ["npm ","start"]
方案3(nginx)
#git作为基础镜像
FROM bitnami/git
#切换目录,指定源码克隆后保存位置
WORKDIR /usr/local/code
#拉取源代码
#git clone http://用户名:密码@仓库
#如果私有仓卡记得加账号密码
RUN git clone https://gitee.com/agricultureiot/demo.git
FROM node:14-alpine
#切换目录,指定编译源码位置
WORKDIR /usr/local/code
#将源码复制到下一个镜像中
COPY --from=0 /usr/local/code/demo /usr/local/code
RUN npm install -g cnpm --registry=https://registry.npmmirror.com
RUN cnpm install
RUN cnpm run build
FROM nginx:alpine
COPY --from=1 /usr/local/code/demo/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80