【gitlab】gitlab runner 能够成功编译vuepress项目了,但是gitlab pages不会开启

修改gitlab配置,本地gitlab部署gitlab pages服务

3.111 上因为我是docker安装gitlab

< pages_external_url "https://gitlab.ccbjb.com.cn"
< gitlab_pages['enable'] = true
< gitlab_pages['inplace_chroot'] = true

我为了配置起作用 把docker容器删掉,然后重新启动服务

docker ps 
docker stop c16e87838ef2 && docker rm c16e87838ef2
docker-compose up -d
//查看启动情况
docker ps 
docker logs -f c16e87838ef2

gitlab runner 安装配置

3.112作为gitlab runner的机器。使用docker方式来安装gitlab runner。

3.112上新建/root/enviroment/Dockerfile

FROM gitlab/gitlab-runner:latest
MAINTAINER shirx <shirx@ccbjb.com.cn>

# 安装yarn (可选,只有执行器为shell时才有点用)
RUN apt-get update
RUN apt install -y curl
RUN apt-get update && apt-get install -y gnupg2
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.
RUN apt-get update
RUN apt install -y yarn
  • 不安装也无所谓,因为大多数都是用docker当作执行器,最常用
  • 本地环境yarn,npm等等只有shell执行器的时候才有用,不方便

/root下创建docker-compose.yml

[root@centos112 ~]# cat docker-compose.yml
version: '3.1'
services:
  gitlab-runner:
    build: enviroment # 调用该目录下的Dockerfile文件
    restart: always
    container_name: gitlab_runner
    privileged: true
    volumes:
      - /usr/local/docker/runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock

准备好config.toml

[root@centos112 ~]# cat /usr/local/docker/runner/config/config.toml
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "3.112 runner for docs"
  url = "https://gitlab.ccbjb.com.cn"
  token = "N1Bf5i3fkh_5nYTrVbDD"
  executor = "shell"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
[root@centos112 ~]#

这里的runners是跑了一次生成的,不创建这个文件,就跑步过去。

启动gitlab-runner

docker-compose up -d
docker-compose up --build -d
// 查看一下启动日志
docker ps
docker logs -f 容器ID或Name

尝试1:新建一个项目plain html项目

create from template,选Pages/plain text. 自动带.gitlib-ci.yml 自动带public/index.html

register

docker exec -it gitlab_runner gitlab-runner register
docker exec -it gitlab_runner gitlab-runner start

然后去gitlab上去看。已经绿了。

修改public/index.html

pipeline 自动编译 pages:弹出链接

修改一下windows的system32/driver/etc/hosts gitlab ip 弹出的那个新域名 192.168.3.111 shirongxin.gitlab.ccbjb.com.cn

访问pages链接

可以看到页面了。

尝试2:原来的vuepress项目

写.gitlab-ci.yml

stages:
  - build

pages build job:
  stage: build
  cache:
    paths:
    - node_modules/

  script:
   - npm ci
   - npm run build

  artifacts:
    paths:
    - docs/.vuepress/dist

  only:
  - master

参考:https://docs.gitlab.com/ee/user/project/pages/getting_started/pages_from_scratch.html

注册Runner与Gitlag工程联系上

docker exec -it gitlab_runner gitlab-runner register 输入gitlab项目中CICD里的Runner的url,token Tags直接回车 执行器这里可以选shell。但是最好选docker,然后指定docker镜像 一般:

  • vuepress等需要node:latest
  • php
  • ruby
  • java

docker exec -it gitlab_runner gitlab-runner start 有时候网页上Runner为灰色未连接状态,才需要执行一下这个。

修改vuepress md文件,并push

能看到 pipline编译md文件为html文件

github

这里最后更新到F:\temp\docs.vuepress\dist 不过这是github的pages的目录。 gitlab不认,需要更新到与.gitlab-ci.yml同级的public/下才行

gitlab

gitlab的时候需要修改

  • .gitlab-ci.yml把job名修改成”pages:”(其他job名网页上一概无法生成blog链接) 这样写的一定要用Docker 执行器来注册。 ``` image: node:latest

pages: cache: paths: - node_modules/

script:

  • yarn install
  • yarn run build

artifacts: paths: - public only:

  • master ```
  • docs/.vuepress/config.js,需要修改dest: “public” ,必须为public,否则gitlab不认
const headConf = require("./config/headConf.js");
const pluginsConf = require("./config/pluginsConf");
const nav = require("./nav");
module.exports = {
  base: "/docs/",
  title: 'blog',
  dest: "public",
  description: '思想persistent',
  head: headConf,
  markdown: {
    lineNumbers: false // 代码块显示行号
  },
  plugins: pluginsConf,
  themeConfig: {
    lastUpdated: '更新时间',
    logo: '/logo.png',
    nav: nav,
    searchMaxSuggestions: 10
    /* 方案1:侧边栏只显示三组中的一组链接 */
    // sidebar: sidebarConf, //使用了vuepress plugin auto sidebar就不用这些了
  }
}


其他参考内容(可以不看):

rpm版 gitlab install

1.添加gitlab镜像 访问 https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/7/gitlab-ce-13.1.5-ce.0.el7.x86_64.rpm

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-13.1.5-ce.0.el7.x86_64

vim  /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
gitlab-ctl restart
查看与rpm包相关的文件和其他信息   rpm -qa | grep 包名
查询包是否被安装,命令:rpm -q 包名
删除软件包,命令:rpm -e 包名

docker版gitlab runner install

其实完全可以这么从容地安装Runner。写docker-compose主要是为了更新的时候方便点。

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

docker exec -it gitlab_runner gitlab-runner register
docker exec -it gitlab_runner gitlab-runner start
docker restart gitlab_runner
docker exec -it gitlab_runner gitlab-runner unregister 

## 进入容器看看
docker exec -it gitlab_runner /bin/sh
cd /home/gitlab-runner/builds/N1Bf5i3f/0/shirongxin

删掉所有容器,删掉指定镜像

docker stop $(docker ps -q) && docker rm $(docker ps -aq) 
docker rmi -f root_gitlab-runner
Written on July 2, 2020