Open mhfe123 opened 3 years ago
mark!
推送镜像 那里的一条命令写错了?应该是docker push www.xx.com/xx/webimage:v1
在有一个基础镜像的前提下,拉合适的node包然后解压到本地,再设置环境变量:
FROM www.xx.com/xx/webimage:v1
ADD node-v12.13.0-linux-x64 /usr/local/lib/node-v12.13.0-linux-x64
ENV NODE_HOME=/usr/local/lib/node-v12.13.0-linux-x64
ENV PATH=$PATH:$NODE_HOME/bin
ENV NODE_PATH=$NODE_HOME/lib/node_modules
背景
因为项目需要,现在需要前端单独打包构建上线,因为本身产品是一个k8s管理平台,有自研的一套CI/CD系统,所以为了配合自己的产品使用,总结有以下几个需求点:
准备一个基础的镜像作为构建前端的环境,需要包含node包,一些基础的node_modules包,防止重新下载浪费时间
编写代码构建的脚本
构建完成以后以nginx为基础打包成一个镜像放到容器中
制作镜像
环境准备
首先准备一个可以使用docker的Linux系统环境,自己接触Linux系统比较少,所以这里费了一点功夫,稍微总结一下吧,初步想法是在一台虚机上通过git的方式把基础配置文件拉过来,然后通过docker打包成一个基础镜像。
遇到的问题:
git问题搞定以后就是安装docker
制作镜像
环境问题搞定以后就开始正式制作镜像了
首先是在本地配置好
package.json
,package-lock.json
文件,里边包含我们需要的基础包的信息,譬如:react
,vue
,webpack
等编写
Dockerfile
文件以上是我们配置基础镜像的
Dockerfile
,当然还有一些其他的指令:基础文件配置好以后,把代码提交到git,在通过git clone把我们的基础文件下载到我们的虚拟机中,当然有其他的更好方式也可以
打包 在当前文件下运行
docker build
,等待打包完成以后运行docker images
就可以看到我们当前打包的镜像了 可以通过docker run -it [name] bash
的指令来查看当前镜像打包的内容tips: 当我第二次打包的时候遇到一个问题,就是再执行docker build的时候会报错,不晓得第一次咋成功的,尴尬,错误内容如下: 这时候自然就要Google一下,然后发现是最后缺少了一个
.
导致的-.- 最后再补充几个指令:推送镜像
当然现在这个镜像是还不能用的,这个只能作为我们自研的CI/CD构建环境的基础镜像,现在我们已经打包好了镜像,需要把它推到自己的镜像仓库去
CI/CD配置
现在我们基础的构建环境有了,下一步是构建代码的脚本,因为我们的CI/CD有配置拉取代码的地方,所以脚本是不包含拉取代码的过程的,只有构建的过程
完成我们代码的构建以后也需要通过
docker
将我们的项目打包成一个镜像可以用来独立部署,这里采用了nginx
来提供服务能力编写
Dockerfile
文件:以上脚本与镜像的构建是通过我们CI/CD系统自动执行的,所以省去了人工的过程,如果是自己去制作镜像的话还要重复之前制作基础镜像的过程来打包成一个可用的镜像。
暂时先记录这么多,后续有问题再补充。