拉取镜像
- docker pull jenkinsci/blueocean
(使用这个版本是因为这个团队还在持续维护,反而是官方版已经没怎么维护,各种报错)
启动镜像
docker run --name=jenkins -p 8888:8080 -p 50000:50000 -v /root/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/maven:/usr/local/maven jenkinsci/blueocean
jenkins还需要额外手动下载的插件
Maven Integration(连接maven)
Publish Over SSH(使用shell脚本)
安装Maven与本地仓库
(1)将Maven压缩包上传至服务器(虚拟机)
(2)解压
tar zxvf apache-maven-3.5.4-bin.tar.gz
(3)移动目录
mv apache-maven-3.5.4 /usr/local/maven
(4)编辑setting.xml配置文件 vi /usr/local/maven/conf/settings.xml ,配置本地仓库目录,内容如下
<localRepository>/usr/local/repository</localRepository>
(5)将开发环境的本地仓库上传至服务器(虚拟机)并移动到/usr/local/repository 。
mv reponsitory_boot /usr/local/repository
执行此步是为了以后在打包的时候不必重新下载,缩短打包的时间。
jenkins全局配置
- 进入jenkins容器
docker exec -it jenkins /bin/bash
ps: jenkins 为容器的名称
- 查询Jenkins镜像继承的jdk安装目录
echo $JAVA_HOME
- 配置jdk
- 配置git(默认已经下载了,不需要配置)
- 配置maven
创建jenkins任务
1.创建maven项目
2.源码管理,选择Git,配置git地址
3.Build
clean package docker:build -DpushImage
Gogs搭建与配置
- 下载镜像
docker pull gogs/gogs
- 创建容器
docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs
3.略:创建仓库、idea绑定git地址、提交代码
POM配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--<parent>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-parent</artifactId>-->
<!--<version>2.1.6.RELEASE</version>-->
<!--<relativePath/> <!– lookup parent from repository –>-->
<!--</parent>-->
<groupId>com.dockerfile</groupId>
<artifactId>dockerfile-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dockerfile-test</name>
<description>Demo project for Spring Boot</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-web</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin
-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--编码方式构建镜像,不需要Dockerfile-->
<!--镜像名,这里用工程名-->
<!--<imageName>192.168.0.160:5000/${project.artifactId}:${project.version}</imageName>-->
<!--<baseImage>java:8</baseImage>-->
<!--<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>-->
<!--Dockerfile方式构建镜像-->
<!--镜像名,这里用工程名-->
<imageName>192.168.0.160:5000/${project.artifactId}:${project.version}</imageName>
<!--Dockerfile文件所在目录-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--TAG,这里用工程版本号-->
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.0.160:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
</project>
Dockerfile
FROM java:8
MAINTAINER root
ADD app.jar app.jar
CMD java -jar app.jar