搭建部署 wiki
环境准备
操作系统:Centos 7
软件:docker / gitlab / jenkins(blueocean 版本)
安装 gitlab
$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce # -d:后台运行 # -p:将容器内部端口向外映射 # --name:命名容器名称 # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
按上面的方式,gitlab 容器运行没问题,但在 gitlab 上创建项目的时候,生成项目的 URL 访问地址是按容器的 hostname 来生成的,也就是容器的 id。作为 gitlab 服务器,我们需要一个固定的 URL 访问地址,于是需要配置 gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。
# gitlab.rb文件内容默认全是注释 $ vim /home/gitlab/config/gitlab.rb # 配置http协议所使用的访问地址,不加端口号默认为80 external_url 'http://x.x.x.x' # 配置ssh协议所使用的访问地址和端口 gitlab_rails['gitlab_ssh_host'] = 'http://x.x.x.x' gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口 :wq #保存配置文件并退出 修改gitlab.rb文件 # 重启gitlab容器 $ docker restart gitlab 此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头 打开浏览器输入ip地址(因为我的gitlab端口为80,所以浏览器url不用输入端口号,如果端口号不是80,则打开为:ip:端口号)
安装 jenkins
docker run \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean
mkdocs 搭建
目录结构如下
. ├── Dockerfile ├── Jenkinsfile ├── README.md ├── docs └── mkdocs.yml
Dockerfile 内容如下
From squidfunk/mkdocs-material ADD . /docs
Jenkinsfile 内容如下
import java.text.SimpleDateFormat node { def dockerName='wiki' stage('git pull'){ sh 'pwd' git credentialsId: '001', url: 'http://1xx.xxx.xx.xx/sunwei/wiki.git' } stage('docker run') { sh 'pwd' def imageUrl = "squidfunk/mkdocs-material:v1" def customImage = docker.build(imageUrl) sh "docker rm -f ${dockerName} || true" docker.image('squidfunk/mkdocs-material:v1').run("-it -d --name ${dockerName} -p 8090:8000 --workdir /docs") } }
配置 jenkins
新建一个 pipeline 项目
配置 jenkins 凭证
jenkins - 配置 - 全局配置
配置 gitlab
管理中心 - 项目 - 编辑
这样每次提交代码时,就会触发自动构建
可以实现 wiki,markdown 编辑提交自动部署了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于