共计 1018 个字符,预计需要花费 3 分钟才能阅读完成。
一、Linux Command 是什么
Linux Command 是 github 上的一个开源项目,搜集了 570 多个 Linux 命令。生成了一个 web 网站方便查找命令使用,内容包含 Linux 命令手册、详解、学习,内容来自网络和网友的补充。
可以说,该仓库涵盖了大量常用的 linux 命令,如果你偶尔需要查看某条命令的详细用法,在这里查找是个不错的选择。我看是部署静态页面,那我必须做一个 Docker 镜像不可,下面就介记录一下我构建和部署的过程。
二、构建 linux-command 镜像
构建非常简单,只需要一个 dockerfile 即可,内容如下:
FROM node:14
ARG LINUX_COMMAND_VERSION
RUN git clone https://github.com/jaywcjlove/linux-command.git --depth=1 && \
cd linux-command && \
git checkout ${LINUX_COMMAND_VERSION} && \
npm i && \
npm run build
FROM nginx
COPY --from=0 /linux-command/.deploy/ /usr/share/nginx/html/
同样使用了多阶段构建的方式,如果不懂什么是多阶段构建,可以参考这篇文章,Docker 多阶段构建 SpringBoot 项目。
使用 LINUX_COMMAND_VERSION 作为变量,需要构建时传递参数,这样可以根据不同的参数构建不同的镜像版本,构建命令如下:
docker build --build-arg LINUX_COMMAND_VERSION=v1.11.2 -t hausen1012/linux-command:v1.11.2 -t hausen1012/linux-command .
同时构建了两个 tag,方便进行上传到 dockerhub。
你可能会有疑惑为什么 git clone 还要加 --depth=1 参数,--depth=1 只克隆下包含最近一次commit的一个分支。这是因为如果不加这个参数,那么克隆下来可能有几个 g 的大小,其实构建镜像只需要几 m。猜测可能是作者上传过大的文件,然后又进行了删除,所以下载就会很大,但那些文件都是没有必要的。
三、运行
非常简单,就和运行 nginx 一样。
docker run -d -p 8080:80 hausen1012/linux-command
访问 http:ip:8080 即可看见如下界面即部署成功。
提醒:本文发布于820天前,文中所关联的信息可能已发生改变,请知悉!