- 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
- 安裝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
- jenkins 配置
-
環(huán)境變量
-
開啟git 服務(wù)
- pro_1 配置目標(biāo)服務(wù)器訪問權(quán)限
把jenkins docker 容器里的公鑰辜腺,添加到生成服務(wù)器的.ssh/authorized_keys中 - 添加docker jenkins 服務(wù)公鑰到github ssh key 中
- 配置項目執(zhí)行腳本
Makefile 文件
# 當(dāng)前路徑
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'
- 安裝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 的同學(xué)即供,請在 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 用戶名和密碼即可