阅读 655

docker本地部署gitlab+runner

此文主要介绍windows环境利用docker客户端来本地部署gitlab+runner自动编译

1.docker软件下载

windows平台:点击下载

mac平台:点击下载

2.镜像下载

Docker Hub 的地址是:hub.docker.com/

3.镜像安装

下边以gitlab为例:

https://hub.docker.com/r/gitlab/gitlab-ce

使用shell窗口下载镜像

docker pull gitlab/gitlab-ce
复制代码

4.容器创建以及运行

docker run -d  -p 3003:80 --name=gitlab-ce --restart=always gitlab/gitlab-ce
复制代码

容器内的端口包括 HTTP 端口(80)、HTTPS 端口(443)和 SSH 端口(22)

目前只对http端口进行映射至宿主3003端口,可进行浏览器访问

5.更改克隆地址

1).修改 HTTP 克隆地址比较简单,直接通过管理员身份在 Admin Area (点击后台上方的扳手符号进入)便可以操作。

Settings -> 
Genenal -> 
Visibility and access controls -> 
Custom Git clone URL for HTTP(S)
复制代码

2).进入容器修改配置

docker exec -it gitlab-ce /bin/bash
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
复制代码

进入文件后,修改gitlab的host和port,然后执行重启命令

gitlab-ctl restart
复制代码

重启执行命令和在docker客户端手动操作都可以

至此,你的gitlab在本地就部署好了!

bug:重启之后还要修改此文件(还未找到解决方案)

6.runner自动编译安装

拉取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
复制代码

进入runner容器

docker exec -it gitlab-runner bash
复制代码

注册runner

gitlab-runner register
复制代码

然后输入gitlab实例地址,token,描述,标签,执行者(docker)以及docker版本(alpine:latest)

通过以上命令之后,我们就可以在gitlab看到刚刚创建的runner(由共享和单个项目之分)

修改runner配置文件,提高自动编译效率

找到volumes配置,修改为如下,分别是挂载了宿主机的docker和配置Maven的缓存,提高效率

volumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock","/data/.m2/:/.m2/"]
复制代码

在volumes配置下方增加一行配置,防止Runner重复拉取镜像

pull_policy = "if-not-present"
复制代码

然后重启runner

docker restart gitlab-runner
复制代码

至此,runner配置完毕

7.项目实际应用

# 依赖镜像
image: node:10.16.0

before_script:
  - echo "before script"
  - npm config set registry http://r.cnpmjs.org/

after_script:
  - echo "after script"

# 定义阶段 stages
stages:
  - build

# 定义 build
job-build:
  # 开始之前需要安装依赖
  stage: build
  script:
    - npm install
    - npm run build
    - echo "finish build stage"
  only:
    - master
  tags:
    - mirror
  artifacts:
    paths:
        - dist/
复制代码

以上为项目根目录.gitlab-ci.yml脚本,只要master分支发生变化便会自动编译打包

运行自动编译之后,可进行打包文件下载!

8.linux常用文件操作命令

i 进入插入模式,可以修改
修改完毕后按 esc 退出编辑模式
打 : 进入命令模式
q 直接退出,有修改会报错
q! 不保存退出
wq 保存并退出
复制代码