此文主要介绍windows环境利用docker客户端来本地部署gitlab+runner自动编译node
windows平台:点击下载linux
mac平台:点击下载git
Docker Hub 的地址是:hub.docker.com/web
下边以gitlab为例:docker
https://hub.docker.com/r/gitlab/gitlab-ceshell
使用shell窗口下载镜像npm
docker pull gitlab/gitlab-ce
复制代码
docker run -d -p 3003:80 --name=gitlab-ce --restart=always gitlab/gitlab-ce
复制代码
容器内的端口包括 HTTP 端口(80)、HTTPS 端口(443)和 SSH 端口(22)vim
目前只对http端口进行映射至宿主3003端口,可进行浏览器访问windows
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:重启以后还要修改此文件(还未找到解决方案)
拉取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配置完毕
# 依赖镜像
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分支发生变化便会自动编译打包
运行自动编译以后,可进行打包文件下载!
i 进入插入模式,能够修改
修改完毕后按 esc 退出编辑模式
打 : 进入命令模式
q 直接退出,有修改会报错
q! 不保存退出
wq 保存并退出
复制代码