Jenkins 服務(wù)搭建 (golang)

  1. docker compose 搭建
version: "3.4"
services:
      go_jenkins:
                restart: always
                image: jenkins/jenkins:latest
                container_name: go_jenkins
                ports:
                        - 8080:8080
                        - 50000:50000 
                user: root
                volumes:
                        - ./jenkins/:/var/jenkins_home
                        - /var/run/docker.sock:/var/run/docker.sock
                        - /usr/bin/docker:/usr/bin/docker
  • 運行啟動
    docker-compose -f /home/ubuntu/tools/docker-compose.yml up -d go_jenkins
  • 獲取初始密碼
    cat /home/ubuntu/tools/jenkins/secrets/initialAdminPassword
    或者
    sudo docker exec -it go_jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  1. 安裝golang
  • awd 安amd包
    https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
tar -zxvf go1.20.5.linux-amd64.tar.gz
ln -s /usr/local/src/go/bin/go /usr/bin/go
ln -s /usr/local/src/go/bin/gofmt /usr/bin/gofmt
  1. jenkins 配置
  • 環(huán)境變量


    image.png

    image.png
  • 開啟git 服務(wù)


    image.png
  • pro_1 配置目標服務(wù)器訪問權(quán)限
    把jenkins docker 容器里的公鑰,添加到生成服務(wù)器的.ssh/authorized_keys中
  • 添加docker jenkins 服務(wù)公鑰到github ssh key 中
  • 配置項目執(zhí)行腳本
    Makefile 文件
# 當前路徑
CURRENT=$(shell pwd)
# 編譯目錄
BUILD_DIR=build

localBin:
    rm -rf $(BUILD_DIR)
    mkdir -p $(BUILD_DIR)
    mkdir -p $(BUILD_DIR)/config
    mkdir -p $(BUILD_DIR)/logs
    cp -rf config/* $(BUILD_DIR)/config
    go mod tidy &&  go build  -o $(CURRENT)/$(BUILD_DIR)/cmd $(CURRENT)/main.go

Build Steps

#!/bin/bash
set -e
cd code && go mod tidy && cd ..
make localBin
cd build && tar cvf ./vic.tar ./cmd ./config && cd ..
ssh ${PRO_1} 'mkdir -p ~/jenkins/vic'
scp ./build/vic.tar ${PRO_1}:~/jenkins/vic/vic.tar
ssh ${PRO_1} 'cd ~/jenkins/vic/ && tar xvf vic.tar && chmod +x cmd'
  1. 安裝super
sudo apt update && sudo apt install supervisor
sudo systemctl status supervisor

配置:
[program:vic]
directory=/home/ubuntu/jenkins/vic/
command=/home/ubuntu/jenkins/vic/cmd 
autorestart=true
autostart=true
stderr_logfile=/var/log/supervisor/vic.err.log
stdout_logfile=/var/log/supervisor/vic.out.log
user=ubuntu
stopsignal=INT
startsecs=1

其他

  • 解決私有倉庫引用的問題
首先,命令行運行 go env -w GOPRIVATE="github.com/Super",將似有倉庫加入 GOPRIVATE 中,略過 go mod 校驗
然后,使用 idea/goland 的同學,請在 setting-Go-GoModules 中添加相應(yīng) GOPRIVATE 的配置,配置參數(shù)同上
最后,配置 git 的權(quán)限校驗,共有兩種方案
    - 1. 直接替換 git 的 clone 方案 ,強制將 https 模式改成 ssh 模式,只需要命令行運行 
git config --global --add url."git@github.com:".insteadOf "https://github.com/" 
即可
    - 2. 在命令行分別運行 
export GIT_TERMINAL_PROMPT=1 
和 
git config --global credential.helper store 
兩條命令,在 go mod tidy/go mod download 的時候按提示輸入自己的 git 用戶名和密碼即可

參考資料

https://learnku.com/articles/73393

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容