前言
各种编程语言均有其优势和生态, 有兴趣的朋友完全可以涉猎多门语言. 在平常的工作之中, 也可以尝试选择相对适合的编程语言来完成相关的工作.
在团队技术文档站搭建这块, 笔者尝试了许多框架, 最终还是选择了 Hexo, 主要是由于其丰富的主题和插件, 并且灵活和高度可定制化, 改起来也非常方便. 我们团队文档站即使用 Hexo 来构建, 并且基于容器配置了完整的代码流水线: docs.xin-lai.com
如果对站点配置, 主题, 插件存在疑问, 可以加群沟通.
目录
官方镜像
编写一个简单的 web 服务器
编码
编写 Dockerfile
构建并运行
使用 Hexo 搭建团队技术文档站
安装
初始化
配置站点信息
生成静态文件
使用 hexo-server 进行托管
使用容器构建和托管
Node.JS 是一个基于 Chrome V8 引擎构建的 JavaScript 运行环境, 是一个让 JavaScript 能够运行在服务端的开发平台. Node.JS 可以方便地搭建响应速度快, 易于扩展的 Web 应用. Node.JS 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效, 非常适合在分布式设备上运行数据密集型的实时应用.
Node.JS 的诞生给前端开发人员带来了极大的惊喜, 传统的 Web 开发者, 前端使用 JavaScript 进行编程, 服务器端代码得用另外一种语言, 比如 Java,.NET,PHP 等等. 但是 Node.JS 出现之后, 前端开发者使用 JavaScript 就可以前后端通吃了.
官方镜像
官方镜像地址: https://hub.docker.com/_/node
编写一个简单的 Web 服务器
1. 编码
使用 Node.JS 编写一个简单的 Web 服务器非常简单, 主要需要用到 http 模块, http 模块主要用于搭建 HTTP 服务端和客户端, 全部代码如下所示:
- // 加载 http 模块
- const http = require('http');
- // 设置端口
- const port = 80;
- // 创建 Web 服务器
- const server = http.createServer((req, res) => {
- // 设置响应的状态码
- res.statusCode = 200;
- // 设置响应的请求头
- res.setHeader('Content-Type', 'text/plain');
- // 设置响应输出文本
- res.end('Hello World !');
- });
- // 设置 Web 服务器监听端口
- server.listen(port);
2. 编写 Dockerfile
Dockerfile 文件如下所示:
- # 指定 node 镜像的版本
- FROM node:8.9-alpine
- # 对外暴露的端口
- EXPOSE 80
- # 复制文件
- COPY . .
- # 运行
- ENTRYPOINT ["node","app.js"]
3. 构建并运行
构建命令如下所示:
docker build --rm -f "dockerfile" -t nodetest1:latest .
运行:
docker run --rm -p 4000:80 nodetest1:latest
在日常开发中, 一些简单的脚本的编写, 为了避免反复的构建过程, 大家同样可以参考 PHP 一节, 然后直接运行 Node.JS 的镜像来执行 Node.JS 的脚本.
参考脚本如下所示:
- docker run -it --rm `
- --name node-running-script `
- -v D:\temp\node:/usr/src/myapp `
- -w /usr/src/myapp `
- node:8.9-alpine node App.JS
使用 Hexo 搭建团队技术文档站
Hexo 是一个快速, 简洁且高效的博客 (不仅仅是博客) 框架, 他可以使用 Markdown(或其他渲染引擎)解析文章, 在几秒内, 即可利用靓丽的主题生成静态网页. 我们可以用其来搭建博客, 文档站点或者其他官网. 接下来, 我们将使用 Hexo 来搭建团队技术文档站. 之所以选择 Hexo, 主要原因如下:
主题丰富
Hexo 的主题很多, 我们在官网就能找到很多可用的主题, 而且均已开源, 如下所示:
插件丰富
在官网, 我们就可以找到很多各种各样的插件, 比如搜索, 字数统计, 自动分类, 百度网址提交, 静态资源压缩等等各种各样的开源插件:
灵活可扩展
- Node.JS http://nodejs.org/ (Node.JS 的版本不得小于 6.9)
- Git http://git-scm.com/
- FROM node:10.15.3-alpine
- # 设置标签
- # 设置容器内端口
- EXPOSE 8000
- # 添加目录
- ADD . /App
- # 设置当前工作目录
- WORKDIR /App
- # 复制文件
- COPY . .
- # 设置 NPM 并且使用 NPM 安装 hexo 以及相关插件, 然后生成静态页并且安装 hexo-server
- RUN NPM config set unsafe-perm true && \
- NPM config set registry https://registry.npm.taobao.org && \
- NPM install -g hexo-cli && \
- # hexo clean && \
- cd src && \
- NPM install hexo --save && \
- NPM install hexo-neat --save && \
- NPM install --save hexo-wordcount && \
- NPM i -S hexo-prism-plugin && \
- NPM install hexo-generator-search --save && \
- NPM i hexo-permalink-pinyin --save && \
- hexo generate && \
- NPM install hexo-server --save
- # 设置工作目录
- WORKDIR src
- # 使用 hexo-server 托管静态文件
- ENTRYPOINT ["hexo", "server","-p","8000"]
来源: https://www.cnblogs.com/codelove/p/10977916.html