Jenkins

109 阅读1分钟

安装 jdk

``` shell
$ tar -zxvf jdk -C /usr/local
```

安装 maven

``` shell
$ tar -zxvf maven -C /usr/local
```
- 配置阿里云maven镜像

    找到: /usr/local/maven/conf/setting.xml
    ```
    <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
    ```
- maven项目配置使用jdk1.8进行编译的插件
  ```
    <profile>
      <id>jdk18</id>
      <activation>
          <activeByDefault>true</activeByDefault>
          <jdk>1.8</jdk>
      </activation>
      <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
  ```

安装 jenkins

  • 拉取Jenkins镜像

    docker pull jenkins/jenkins
    
  • 编写docker-compose.yml

    version: "3.1"
    services:
      jenkins:
        image: jenkins/jenkins
        container_name: jenkins
        ports:
          - 8080:8080
          - 50000:50000
        volumes:
          - ./data/:/var/jenkins_home/
    
  • 启动容器

    docker-compose up -d
    
  • error

    touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
    

    chmod -R 777 data


设置SSH service

image.png

CI

  • 新建任务
    1. 源码管理
      image.png
    2. Build Steps image.png
    3. 构建后操作 image.png
    4. Dockerfile
    FROM adoptopenjdk/openjdk8
    COPY demo.jar /usr/local
    WORKDIR /usr/local
    CMD java -jar demo.jar
    
    1. docker-compose.yml
    version: '3.1'
    services:
      demo:
        build: ./
        image: demo:v1.1.0
        container_name: demo
        ports:
        - 8081:8081
    

CD

  • 安装 git插件

  • 配置Git参数 image.png

  • 在执行build 前添加执行 shell命令 image.png

  • error

      stderr: fatal: unable to access 'https://gitee.com/wuyc12138/demo.git/': Could not resolve host: gitee.com
    

    解决

    docker exec -it jenkins bin/bash
    git config --global http.sslVerify false
    
  • Jenkins[docker]使用宿主机的docker

    sudo chown root:root /var/run/docker.sock
    sudo chmod o+rw /var/run/docker.sock
    
    • 添加数据卷

      version: "3.1"
      services:
        jenkins:
          image: jenkins/jenkins
          container_name: jenkins
          ports:
            - 8080:8080
            - 50000:50000
          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