# Jenkins 安装及使用

ubuntuserver 安装步骤

# 前置要求

# 安装 java 和 maven

# 下载 jenkins

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

# 需要有 jdk 镜像

构建最小 jdk 镜像

jre8 下载地址

选择 Linux x64filesize

解压文件

tar -xzvf jre-8u181-linux-x64.tar.gz

删除无用的文件

cd jre1.8.0_181/
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
rm -rf  lib/plugin.jar \
        lib/ext/jfxrt.jar \
        bin/javaws \
        lib/javaws.jar \
        lib/desktop \
        plugin \
        lib/deploy* \
        lib/*javafx* \
        lib/*jfx* \
        lib/amd64/libdecora_sse.so \
        lib/amd64/libprism_*.so \
        lib/amd64/libfxplugins.so \
        lib/amd64/libglass.so \
        lib/amd64/libgstreamer-lite.so \
        lib/amd64/libjavafx*.so \
        lib/amd64/libjfx*.so

重新打包

tar zcvf jre8.tar.gz *

新建 Dockerfile

# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER simon
# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt

构建 docker 镜像 (Dockerfile 与压缩包在同一目录下)

docker build -t jdk8 .

java 中 pom 文件修改,指定 jdk8 镜像

<plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.0.0</version>
  <configuration>
    <imageName>ibase/${project.artifactId}:${project.version}</imageName>
    <!--<dockerDirectory>src/main/docker</dockerDirectory>-->
    <forceTags>true</forceTags>
    <baseImage>jdk8</baseImage>
    <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
    <resources>
      <resource>
        <targetPath>/</targetPath>
        <directory>${project.build.directory}</directory>
        <include>${project.build.finalName}.jar</include>
      </resource>
    </resources>
  </configuration>
</plugin>

另一种写法 (这是我用过的)

<build>
      <finalName>lwapp-config</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <!-- 安装 docker 的主机的地址 -->
                    <imageName>192.168.98.205:5092/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk8</baseImage>
                    <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
                    <!--<dockerCertPath>/etc/ca/docker-ca</dockerCertPath>-->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!-- 安装 docker 的主机的地址 -->
                    <dockerHost>http://192.168.98.205:2375</dockerHost>  
                </configuration>
            </plugin>
        </plugins>
    </build>

# 安装私有 docker 仓库

docker run -di --name=myregistry -p 5092:5000 registry

尝试访问 registry 容器 :http://10.62.17.101:10092/v2/_catalog

想要上传还需要 docker 开放 2375 端口

vi /usr/lib/systemd/system/docker.service

进入后修改

# 注释掉或删除这句话
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 加入下面这句
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock

# 让虚拟机识别到更改的仓库

在 /etc/docker/daemon.json 添加

"insecure-registries":["192.168.98.205:5092"]

重新加载 docker 和 daemon

systemctl daemon-reload
systemctl restart docker

修改要上传的标签并上传

docker tag jdk8 192.168.98.205:5092/jdk8
docker push 192.168.98.205:5092/jdk8

# (可选项) 安装 gogs

docker run -d -p 20022:22 -p 23000:3000 -v /root/gogs_data:/data gogs/gogs

注:将自己的代码上传到 gogs 或者其他的 git 仓库中,Jenkins 会根据这个仓库地址的代码进行生成镜像

# Jenkins 的使用

  1. 安装好后 Jenkins 默认启动了 8080 端口,输入网址进入需要输入密钥

密钥可以使用 systemctl status jenkins 查看

或者 cat /var/lib/jenkins/secrets/initialAdminPassword

  1. 进入后会有两个选项可以不用选直接点击右上角关闭
  2. 主界面侧边栏找到系统管理

image-20220430125903251

  1. 点击插件管理image-20220430125956038

  2. 选择可选插件搜索想要的插件选中后点击 install(安装 Git plugin 和 Maven Integration plugin)

image-20220430130423000

  1. 退出插件管理进入全局工具配置
  2. 配置 maven 的 setting 文件的路径和 jdk 的路径 (jdk 可以不用改使用默认的),配置完成点击保存即可

image-20220430130900088

  1. 返回主页点击新建任务,输入名称选择 - 构建一个 maven 项目,点击确定
  2. 源码管理选择 Git,输入之前上传仓库的 clone 地址
  3. (之前的都不用动) Build 的 RootPom 选择 git 仓库中的位置。(在表面则不用改,文件夹内部则为:文件夹名 /pom.xml)
  4. Goals and options 根据需求填写,一般为 clean package docker:build -DpushImage
  5. 点击保存后返回主界面点击三角开关即可,成功则显示绿色√,否则为红色 ×

image-20220430131609017

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

obsidianlyg 微信支付

微信支付