自己打包一個 docker image(linux + git + node + pnpm)

透過 alpine image 建立容器,並在容器內建立環境,包含 git + node + pnpm,重新把容器打包成 image,並上傳到 DockerHub

-3 min read

基礎鏡像:alpine images

alpine 是基於 Alpine Linux 的最小 Docker 鏡像,大小僅為 5 MB。

建立具有 git, node, pnpm 的 image

# 拉 DockerHub 上 Alpine Linux image 下來docker pull alpine # 啟動容器,並進入終端機互動模式docker run -it --name alpine-git-pnpm alpine# 安裝 curl# apk 是 Alpine Linux 下的包管理工具apk --no-cache add curl# 安裝 gitapk add git# 檢查 gitgit --version# 安裝 node, npmapk add --update nodejs npm# 檢查 nodenode -v# 安裝 pnpmnpm install -g pnpm# 檢查 pnpmpnpm -v# 將容器打包成鏡像,在本機執行,不是容器內# docker container commit [容器名稱] [鏡像名稱]docker container commit alpine-git-pnpm alpine-git-pnpm# 為鏡像打 tag,因为鏡像推到 Docker Hub 中,要用 tag 来區分版本,這裡我们先設定为 latest。# tag 中加上了用戶名做命名空間,防止與 Docker Hub 上的鏡像衝突。docker tag alpine-git-pnpm rock070/alpine-git-pnpm:latest# 將 tag 推送至 Docker Hub。docker push rock070/alpine-git-pnpm:latest

拉取已建立的 image

# 將本地所有關於 alpine-git-pnpm 的鏡像和容器删除# 拉取剛剛推送到 Docker Hub 的鏡像docker pull rock070/alpine-git-pnpm:latest# 使用 image 執行容器docker run -it --name alpine-git-pnpm-test rock070/alpine-git-pnpm# 驗證環境是否正常git --versionnode -v npm -vpnpm -v

參考文章:如何用 docker 打造前端开发环境