Jenkins
原创大约 3 分钟
安装
Jenkins官网列出了Jenkins的多种安装方式,各有利弊,但相对来说MacOS下的安装最为简单和Windows下的安装最为简单。
- 官方给出了Docker部署Jenkins的完整脚本,脚本中很多都是不必要的,真正有用就是下面这一条。
> docker run --name jenkins \
--restart=always \
-p 8080:8080 \
-p 5000:5000 \
-v ./jenkins:/var/jenkins_home \
jenkins/jenkins
可以在./jenkins
目录中准备一个名为hudson.model.UpdateCenter.xml
的文件,这个文件是可选的,可以准备也可以不准备,其内容如下。
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<!-- 或者将http://updates.jenkins.io/current/update-center.json 替换为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json -->
<url>http://updates.jenkins.io/current/update-center.json</url>
</site>
</sites>
然后执行Docker脚本就可以了。
或者把Gitlab和Jenkins整合到一起,提供一个统一的启动Docker Compose脚本。
version: '3.6'
services:
jenkins:
image: jenkins/jenkins:latest
container_name: jenkins
user: root
restart: always
privileged: true
ports:
- 9528:9528
- 50000:50000
environment:
- TZ=Asia/Shanghai
volumes:
- ./data/:/var/jenkins_home/
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
- /etc/docker/daemon.json:/etc/docker/daemon.json
gitlab:
image: gitlab/gitlab-ce:16.9.2-ce.0
container_name: gitlab
restart: always
hostname: localhost
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://localhost:9529'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- 9529:9529
- 443:443
- 2222:2222
volumes:
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab
shm_size: '256m'
> brew install jenkins-lts
> brew services start jenkins-lts
在Windows中安装则只需要在这里下载
.exe
安装文件就行了,只不过安装过程中需要修改一些本地安全策略。以管理员权限登录计算机。
打开
管理工具
并打开本地安全策略
。展开
本地策略
并单击用户权限分配
。在右侧窗格中,右键单击
作为服务登录
并选择属性。单击
添加用户或组(U)...
按钮来添加新用户。在
选择用户或组
对话框中,找到要输入的用户,然后单击确定
。单击
作为服务登录
属性中的确定
以保存更改。
如果不想这么麻烦,干脆选择Run service as LocalSystem (not recommended)
就好了。
安装好之后就可以开始配置Jenkins了。
配置
Jenkins通常需要配置两个组件。
Jenkins有两种编译构建模式,Freestyle Job
和Pineline Job
。
Freestyle Job
,这是一种相对自由的Job
,每次只能执行一个具体的任务,不需要编码,完全通过页面配置实现,但不利于后续管理维护,因为它都是散装的,且无法拼接。Pineline Job
,这就是流水线任务,可以通过编码实现各种复杂的编译
、构建
、打包
和部署
逻辑,而且迁移、修改也很方便,但学习和维护成本较高。
感谢支持
更多内容,请移步《超级个体》。