基础镜像就是基于比如centos、龙蜥等系统镜像预装一些软件工具或者环境,基于NVM的自定义构建镜像适用于云效
dockerfile编写
#依赖anolisos环境
FROM openanolis/anolisos:8.6
#安装vim、git和nvm环境
RUN yum -y update \
&& yum -y install epel-release && yum -y install jq \
&& yum -y install bash \
&& yum -y install vim \
&& yum -y install git \
&& git --version \
&& cd ~/ \
&& git clone https://gitee.com/hellogitee/nvm.git .nvm \
&& cd ~/.nvm && git checkout v0.39.5 \
&& echo "source ~/.nvm/nvm.sh" >> ~/.bashrc && source ~/.bashrc \
&& echo "export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/" >> ~/.bashrc && source ~/.bashrc \
&& echo "export NVM_NPM_ORG_MIRROR=https://npmmirror.com/mirrors/npm/" >> ~/.bashrc && source ~/.bashrc \
&& nvm install 14.18.3 \
&& nvm install 16.20.2 \
&& nvm install 17.3.0 \
&& nvm install 18.18.2 \
&& nvm install 19.9.0 \
&& nvm install 20.9.0 \
&& nvm install 21.1.0 \
&& yum remove -y git \
&& yum clean all
- nvm git地址可以替换为github.com.cnpmjs.org/nvm-sh/nvm.… gitee.com/hellogitee/…
- nvm install node版本 预装一些node版本
- NVM_NODEJS_ORG_MIRROR=npmmirror.com/mirrors/nod…" 指定node源
- NVM_NPM_ORG_MIRROR=npmmirror.com/mirrors/npm…" 指定npm源
- echo "export NVM_NODEJS_ORG_MIRROR=npmmirror.com/mirrors/nod…" >> ~/.bashrc && source ~/.bashrc 将配置写入.bashrc 并刷新
基于dockerfile 制作镜像
#执行docker build指令 -t name:tag -f /路径/Dockerfile
docker build -t anolisos8.6/nvm:v0.39.5 .
验证预装工具和环境是否正确
#查看镜像
docker images
# 找到对应镜像id imageid 比如imageid=3f6bd7d1db6a
# -itd 是为了保证基础镜像(基础镜像无启动命令)可以正常启动 一般镜像-it即可
docker run -itd --name=anolisos8.6/nvm 3f6bd7d1db6a
#查询正在运行的容器 比如容器id = a2d239402391
docker ps
# 进入docker容器
docker exec -it a2d239402391 /bin/bash
#验证nvm 查看node可用版本
nvm ls-remote