搭建部署 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 编辑提交自动部署了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于