创建用于NodeJS 项目编译的Docker 镜像

最近公司在推动Devops,搞了几个镜像,现就把制作镜像的过程记录下来,分享给有需要的同学。由于我们前端开发是采用是Angular 技术,因此我们特意制作了一个NodeJS容器,用于编译Angular应用。

1. 创建Dockerfile

# base image

FROM daocloud.io/centos:7

USER root

RUN yum install git -y -q && yum clean all

ADD node-v12.16.2-linux-x64.tar.xz /home

ENV PATH=$PATH:/home/node-v12.16.2-linux-x64/bin

ENV TZ=Asia/Shanghai LANG=en_US.utf8

# 如果觉得 npm install 慢可以使用淘宝源

#RUN npm config set registry https://registry.npm.taobao.org

MAINTAINER Hexin Hou <hexin_hou@163.com>

2. 运行docker build 命令进行镜像制作

在Dockfile所在文件夹运行:  docker build -t node-builder .

执行完毕后,可以通过docker images 查看创建的镜像,可到如下图名字为node-builder的镜像说明成功了。可以通过运行docker run -it node-builder 来去验证是否git 以及 node 已被正确安装上。

3. 保存镜像并上传到镜像仓库

1) 打个Tag: docker tag ddd921e18a19 xxxxx.com/nodejs-uat/nodejs-builder:1.0

2)登陆:docker login  xxxxx.com 

3)  docker push xxxxx.com/nodejs-uat/nodejs-builder:1.0


中间遇到了很多坑,现总结一下:

坑:

1.   出现如下图所示的问题:error during connect....

可能的解决方案:'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon 

2. image operating system "linux" cannot be used on this platform。

解决办法很简单,只需要在状态栏中鼠标右击小鲸鱼,然后选择Switch to Linux Containers

3. Docker login 时,出现Error response from daemon: Get https://xxxxxxx.com/v2/: x509: certificate signed by unknown authority

1) 解决方案,将该网站https://xxxxxxx.com加入到信任网站中,参考https://trevorsullivan.net/2016/08/09/docker-login-error-x509-certificate-signed-unknown-authority/

2) 配置docker 的 insecure-registries

以windows 为例进行配置:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。