本地创建node镜像并提前安装pnpm环境
背景
因为需要在项目中使用pnpm
包管理工具,并且通过only-allow
强制使用pnpm
引出 ci 也需要使用 pnpm
但是介于网络问题,安装一直错误,并且因为安全问题,也不能使服务器连接外网。
解决方案
在一台网络正常的机器上构建一个已经预装好pnpm的docker镜像,并上传到服务器,使用本地镜像来解决问题
环境要求
docker
网络正常
步骤
构建自定义镜像
本地新建目录来进行如下操作
# 基于基础的node镜像
FROM node:16.13.2
RUN curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7 \
&& pnpm config set store-dir ~/.pnpm-store
开始构建
docker build -t name:tag .
验证
$ docker run -itd --name test node16:pnpm
$ docker ps // 获取id
$ docker exec -it id /bin/bash
// node -v && pnpm -v work!
开始创建镜像文件
$ docker save -o exampleName.tar name:tag
传输至服务器
$ scp exampleName.tar root@hostname:/data
服务器导入镜像
$ docker load < exampleName.tar
查看
$ docker images
可能需要重命名
$ $docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
删除
$ $docker rmi IMAGEID 或者 docker rmi REPOSITORY:TAG
One comment
好强啊,带带我