1.Jenkins安装 1 2 3 4 5 6 7 8 9 >> sudo docker run -u root -d --name jenkins \ -p 8088:8080 -p 50000:50000 \ -v /data/project/jingyu/jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker \ -v /etc/localtime:/etc/localtime:ro \ -e TZ=Asia/Shanghai \ --privileged=true \ jenkins/jenkins:lts
2.Jenkins页面访问
(1) 访问地址为:<服务器地址>:8088,需要输入密码,密码存储位置为:/var/jenkins_home/secrets/initialAdminPassword
1 2 >> sudo docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword 55d7a2adada24ad4abc1c10d60ca510a
(2) 配置代理:”Manage Jenkins” -> “System” -> “Http Proxy Configuration” -> “Setup” -> 配置代理地址”Server”(10.46.200.165)、端口”Port”(26382)及不代理”No Proxy Host”(localhost,127.0.0.1,10.124.132.*,10.46.500.165)后,”Submit”提交保存,最后重启一下容器:
1 >> sudo docker restart jenkins
(3) 安装中文插件:”Manage Jenkins” -> “Plugins” -> “Available Plugins” -> 搜索并安装”Localization: Chinese (Simplified)”和”Locale”插件
(4) 设置中文界面:”Manager Jenkins” -> “Appearance” -> “Default Language” -> Chinese(China)-zh_CN” 并勾选”Ignore browser preference and force this language to all users”
(5) 安装一些必备插件:”Publish Over SSH”,”GitLab”, “Git”, “Pipeline”, “Maven Integration”, “Docker”
3.Jenkins自动化部署项目 3.1 创建项目 “New 任务” -> “构建一个自由风格的软件项目” -> 输入项目名称,如”deploy”
3.2 配置源码
[1] 找到”源码管理” -> “Git” -> “Repository URL”中输入项目的git地址
[2] 配置”Credentials” -> “添加” -> “Jenkins” -> 类型选择”Username with password”,并输入”用户名”和”密码” -> 选择”添加” -> “Credentials”选择刚添加的用户名和密码配置。
3.2 构建步骤
找到”Build Steps” -> “增加构建步骤” -> “Execute shell” -> 将下面的脚本内容贴入到”命令”中 -> “Save” 保存后,开始构建即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #!/bin/bash set -eCODE_PATH="/var/jenkins_home/workspace/xiongan-ai-agent-deploy" IMAGE_NAME="agent:v1.0" CONTAINER_NAME="agent" cleanup_container () { local container_name=$1 if docker ps -a --format "{{.Names}}" | grep -q "^${container_name} $" ; then echo "发现已存在容器 ${container_name} ,正在停止并删除..." docker stop ${container_name} || true docker rm ${container_name} || true echo "容器 ${container_name} 清理完成" else echo "容器 ${container_name} 不存在,无需清理" fi } echo "开始构建镜像 ${IMAGE_NAME} ..." cd ${CODE_PATH} /docker || { echo "docker目录不存在" ; exit 1; }docker build \ --build-arg http_proxy=http://10.46.200.165:26382 \ --build-arg https_proxy=http://10.46.200.165:26382 \ -t ${IMAGE_NAME} . cleanup_container ${CONTAINER_NAME} docker run -itd --name ${CONTAINER_NAME} \ --net=host --ipc=host --shm-size 16g \ --privileged=true --cap-add=SYS_PTRACE \ -v /data/project/jingyu/jenkins-data/workspace/xiongan-ai-agent-deploy:/app/xiongan-ai-agent \ ${IMAGE_NAME} docker exec -i ${CONTAINER_NAME} bash -c "cd /app/xiongan-ai-agent && bash ./scripts/start.sh" echo "脚本执行完成!容器 ${CONTAINER_NAME} 已启动并执行启动脚本"
参考资料