栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

记录一次gitlab-ci过程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录一次gitlab-ci过程

1.安装一个gitlab服务器
2.项目代码以go语言项目为基础
cicd项目包括
1)main.go

package main

import (
	"net/http"
)

func main() {
	//注册一个函数,响应某一个路由
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Hello CICD"))
	})

	//启动端口服务
	http.ListenAndServe(":8000", nil)
}

(2)Dockerfile

FROM golang:latest
MAINTAINER zheng
# 镜像中项目路径
WORKDIR $GOPATH/src/kun.com/cicd-demo
# 拷贝当前目录代码到镜像
COPY . $GOPATH/src/kun.com/cicd-demo
# 制作镜像
RUN go build .
# 暴露端口
EXPOSE 8000
# 程序入口
ENTRYPOINT ["./cicd-demo"]

(3) gitlab ci的重要文件 .gitlab-ci.yml

stages:
  - deploy

docker-deploy:
  stage: deploy
  # 执行Job内容
  script:
    - echo "你好"
    # 通过Dockerfile生成cicd-demo镜像
    - sudo docker build -t cicd-demo .
    # 删除已经在运行的容器
    - if [ $(sudo docker ps -aq --filter name= cicd-demo) ]; then sudo docker rm -f cicd-demo;fi
    # 通过镜像启动容器,并把本机8000端口映射到容器8000端口
    - sudo docker run -d -p 8000:8000 --name cicd-demo cicd-demo
  tags:
    # 执行Job的服务器
    - kubernetes-runner
  only:
    # 只有在master分支才会执行
    - master

3.上传代码到gitlab服务器

本地的文件名字必须和你gitlab上的仓库一样*
不然上传不了

cd ci/
git init
git remote add origin http://172.16.100.133:8090/root/springbootdemo.git
git add .
git commit -m “Initial commit”#每次提交说明
git push -u origin master

4.安装 gitlab-runner

(1)# 镜像复用的官方镜像:gitlab/gitlab-runner:v10.0.0

docker run -d --name gitlab-runner-v10.0.0 --restart always 
  -v /data/apps/gitlab-runner/config:/etc/gitlab-runner 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v /usr/bin/docker:/usr/bin/docker 
  gitlab/gitlab-runner:v10.0.0

(2)注册runner

docker exec -it gitlab-runner-v10.0.0 /bin/bash
容器里面输入 gitlab-runner register
开始注册

最重要的就是在gilab cicd 中找到

指定url
指定的 token
注册到gitlab-runner容器中

可以选择 shell,docker ,kubernetes
作为 gitlab-runner 运行环境
5.由于这些步骤在容器内执行
而不以root用户执行,而是以gitlab-runner用户执行
sudo groupadd docker #添加docker用户组
sudo gpasswd -a gitlab-runner docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
su gitlab-runner #切换到runner用户组
docker ps #测试docker命令是否可以使用sudo正常使用

sudo docker ps #可以执行

sudo时候需要密码,我做了免密登陆操作
由于帐号并没有开启免密码导致的
假设当前帐号为abc
切换到root下

1 打开sudoers
vi /etc/sudoers
2 添加免密码
abc ALL = NOPASSWD: ALL

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号