各类编程语言均有其优点和生态,有兴趣的朋友彻底能够涉猎多门语言。在日常的工做之中,也能够尝试选择相对适合的编程语言来完成相关的工做。html
在团队技术文档站搭建这块,笔者尝试了许多框架,最终仍是选择了Hexo,主要是因为其丰富的主题和插件,而且灵活和高度可定制化,改起来也很是方便。咱们团队文档站即便用Hexo来构建,而且基于容器配置了完整的代码流水线:docs.xin-lai.com前端
若是对站点配置、主题、插件存在疑问,能够加群沟通。node
Node.js 是一个基于 Chrome V8 引擎构建的JavaScript运行环境,是一个让JavaScript可以运行在服务端的开发平台。Node.js能够方便地搭建响应速度快、易于扩展的Web应用。Node.js 使用事件驱动, 非阻塞I/O模型而得以轻量和高效,很是适合在分布式设备上运行数据密集型的实时应用。git
Node.js的诞生给前端开发人员带来了极大的惊喜,传统的Web 开发者,前端使用JavaScript进行编程,服务器端代码得用另一种语言,好比Java、.NET、PHP 等等。可是 Node.js 出现以后,前端开发者使用JavaScript就能够先后端通吃了。web
官方镜像地址:https://hub.docker.com/_/nodedocker
使用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);
Dockerfile文件以下所示:npm
#指定node镜像的版本 FROM node:8.9-alpine #对外暴露的端口 EXPOSE 80 # 复制文件 COPY . . # 运行 ENTRYPOINT ["node","app.js"]
构建命令以下所示:编程
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 是一个快速、简洁且高效的博客(不只仅是博客)框架,他可使用 Markdown(或其余渲染引擎)解析文章,在几秒内,便可利用靓丽的主题生成静态网页。咱们能够用其来搭建博客、文档站点或者其余官网。接下来,咱们将使用Hexo来搭建团队技术文档站。之因此选择Hexo,主要缘由以下:
Hexo的主题不少,咱们在官网就能找到不少可用的主题,并且均已开源,以下所示:
在官网,咱们就能够找到不少各类各样的插件,好比搜索、字数统计、自动分类、百度网址提交、静态资源压缩等等各类各样的开源插件:
不管是主题仍是插件,均为开源。相关主题的修改也很是简单,您只要具有必定的JavaScript和Html的知识,就能够完成对主题和插件的修改。
不管是搭建博客仍是技术文档站,使用Markdown进行文章编写都是须要优先考虑的。团队成员仅需提交Markdown,就能够生成一个漂亮美观的静态站点,这是一件多么惬意的事情啊!
接下来,咱们就演示如何一步一步的使用Hexo来构建团队技术站点:
在安装Hexo以前,咱们先必须安装好如下内容:
接下来,咱们仅需使用如下命令来安装Hexo:
npm install -g hexo-cli
npm是Node.js的包管理工具,在安装Node.js时会顺带安装好,经过以上命令,咱们将使用npm全局安装(安装到全局目录)hexo-cli。
接下来,咱们能够开始使用Hexo建站了。首先咱们须要进行一些站点初始化的工做:
hexo init <folder>
目录为选填,不填则默认当前目录。
初始化完成以后,就能够看到目标目录下多了不少内容:
接下来,咱们使用npm管理工具进行安装相关包:
npm install
在根目录下,咱们能够找到“_config.yml”文件,经过修改该文件,咱们能够在此配置大部分参数:
具体配置信息见官网说明:https://hexo.io/zh-cn/docs/configuration
默认状况下,Hexo进行站点初始化时,已经完成了默认主题(landscape)和内容(hello-world.md)的设置,咱们能够直接执行如下命令来生成静态文件:
hexo generate
执行以后,咱们能够在“public”目录看到如下静态文件:
咱们还可使用命令“hexo deploy”来部署站点,好比部署到GitHub而后使用GitHub进行托管。Hexo支持多种部署方式,具体见官网:https://hexo.io/zh-cn/docs/deployment
咱们也可使用官方组件hexo-server进行托管咱们的静态站点,在使用以前,咱们得先进行安装:
npm install hexo-server –save
安装完成后,就可使用如下命令来启动web服务器来进行查看了:
hexo server -p 5000
-p参数用于指定端口,默认端口为4000:
接下来,咱们就能够用浏览器直接打开这个地址进行访问了:
至此,一个简单的静态站点就搭建好了。咱们能够配置导航连接,或者使用主题和插件来支持各类自定义的功能。例如以下所示的站点:
初步了解Hexo以后,咱们可使用Docker来构建和托管咱们的站点。主体参考流程以下所示:
以上流程仅供参考,TeamCity的配置请参考DevOps相关章节。
Dockerfile文件以下所示:
FROM node:10.15.3-alpine # 设置标签 LABEL author=雪雁 email=xinlai@xin-lai.com site=https://docs.xin-lai.com # 设置容器内端口 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"]