准备条件

  1. 安装好Docker For Windows客户端。
  2. 配置好Docker 阿里云加速镜像地址。
  3. 检查Docker版本,大于等于v19。

拉取Gitlab镜像

docker pull gitlab/gitlab-ce:latest

安装GitLab

因为一些不确定的原因,这里推荐你切换到Linux的终端环境来执行一下命令,而不是使用PowerShell。

试玩:

docker run --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume /home/gitlab/config:/etc/gitlab --volume /home/gitlab/logs:/var/log/gitlab --volume /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

推荐:

docker run --publish 4433:443 --publish 7000:80 --publish 77:22 --name gitlab --restart always \
--volume /home/username/gitlab/config:/etc/gitlab \
--volume /home/username/gitlab/logs:/var/log/gitlab \
--volume /home/username/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce

修改Gitlab绑定地址

如果不修改,用Docker方式新建的Docker的地址就会变成实例Id名字,这样肯定不行。

  1. 右键管理员权限打开PS,切换到root用户获取最高权限。
sudo su

  1. vim命令编辑gitlab的配置文件
vim /home/username/gitlab/config/gitlab.rb
  • 用快捷键i进入编辑模式。
  • 用Esc退出编辑模式
  • 用:wq保存并且退出Vim

  1. 重启Gitlab的Docker实例生效
docker restart gitlab
  1. 你将得到一个可以http和ssh访问的gitlab

新建并注册GitLab Runner

注意,以下操作仅针对Docker场景,并且需要在Linux命令行执行最佳。

新建GitLab Runner

docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest

备注--restart参数

Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

如果是已经运行的Docker实例,可以通过update命令更新设置

docker update --restart=always gitlab

注册GitLab Runner

运行如下命令启动注册

docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

前往位置:Gitlab项目-Setting-CI/CD-Runners-Expand

接下来,会要求你填写一些信息,其中Url地址和Token是需要你去GitLab项目CI/CD设置页面得到的,其他的信息就随意填写了。

设置完之后,最好重启一次实例。

docker restart gitlab-runner

最新文章

  1. AngularJS模型
  2. Gulp.js 参考手册,自动化构建利器
  3. array,vertor,arraylist,hashable,hashmap等几个易混淆概念的区别
  4. #define 的一些用法 以及 迭代器的 [] 与 find()函数的区别
  5. document操作
  6. iOS-default.png启动图片
  7. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁!
  8. php 与 ajax 获取123的案例
  9. Hadoop学习资料收集
  10. vb6加载时提示出错,窗体log文件中错误信息为:控件 XX 的类 MSComctlLib.ListView 不是一个已加载的控件类。
  11. 2.2 sikuli中编程运行
  12. 约瑟夫环C#解决方法
  13. UIScrollView UIPageViewControlle…
  14. 第四十五篇--将文件写入SD卡
  15. hdu4044
  16. Docker的安装与使用介绍
  17. 华为MAC Flapping , MAC的漂移
  18. BZOJ.3425.[POI2013]Polarization(DP 多重背包 二进制优化)
  19. Bugku-CTF之web2-听说聪明的人都能找到答案
  20. JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)

热门文章

  1. linux .tar.xz 文件解压和压缩
  2. HTTP、TCP、UDP,Socket,HTTPS
  3. 校准仪的开发 ---等下整理 迪文屏的ICO文件 和输出配置问题
  4. 10.21 nmap:网络探测工具和安全/端口扫描器
  5. 『政善治』Postman工具 — 14、NewMan工具的使用详解
  6. 【JDK命令行 一】手动编译Java源码与执行字节码命令合集(含外部依赖引用)
  7. flink Checkpoint优化
  8. 机器学习实战二:波士顿房价预测 Boston Housing
  9. Go语言web开发---Beego的session
  10. CVPR2020论文解读:三维语义分割3D Semantic Segmentation