安装Docker
参考官方文档
卸载系统自带JDK
查询出系统自带的jdk
rpm -qa | grep Java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
tzdata-java-2015g-1.el7.noarch
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps 删除系统自带的jdk
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
安装JDK1.8
-
创建java文件夹
cd /usr/local mkdir java
-
下载JDK
下载到本地,rz命令传送到服务器java目录
-
解压
tar -zxvf jdk-8u152-linux-x64.tar.gz
-
设置环境变量
vim /etc/profile #在文件末尾添加环境变量 export JAVA_HOME=/usr/local/java/jdk1.8.0_152 export CLASSPATH=.:$HAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin #按ESC退出编辑,按住shift 连续按两次Z保存(shift+zz) #应用更改 source /etc/profile
安装Jenkins
# 添加yum repos
wget -O /etc/yum.repos.d/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins
启动Jenkins
systemctl start jenkins
配置Jenkins权限
#把jenkins 用户加入docker用户组
gpasswd -a jenkins docker
Jenkins系统设置
安装Jenkins插件
配置构建应用所需的插件,如:Gradle、Maven等
配置项目
修改 build.gradle 文件
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.6.RELEASE")
classpath('se.transmode.gradle:gradle-docker:1.2')
}
}
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'application'
apply plugin: 'docker'
apply plugin: 'org.springframework.boot'
group 'huanglaoxie'
version '1.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8
[compileJava, compileTestJava]*.options*.encoding = "UTF-8"
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Dalston.SR4'
}
}
dependencies {
compile "org.codehaus.groovy:groovy-all:2.4.11"
compile "org.springframework.boot:spring-boot-starter-web"
}
docker {
baseImage "openjdk:latest"
maintainer = 'huanglaoxie huanglaoxie@126.com'
registry 'huanglaoxie'
//设置其他镜像中心的参数
...
}
distDocker {
push = false
exposePort(8080)
setEnvironment("SERVER_PORT", "8080")
setEnvironment('JAVA_OPTS', '-Xms128m -Xmx512m -Djava.security.egd=file:/dev/./urandom')
volume("/data")
}
Gradle 构建 Docker 镜像
gradle distDocker
Jenkins构建Docker应用
# 删除容器
echo `docker rm -f ${CONTAINNER_NAME}`
# 删除镜像
echo `docker rmi ${IMAGE_NAME}:${IMAGE_VERSION}`
# 构建镜像(gradle)
gradle clean disDocker
# 构建镜像
docker run -d --name ${CONTAINNER_NAME} -p ${APP_PORT}:8080 ${IMAGE_NAME}:${IMAGE_VERSION}
jenkins执行构建命令出错后就不会继续执行后续构建命令,如: 当容器不存在时,执行 docker rm -f ${CONTAINNER_NAME} 命令会报错,使用 echo
docker rm -f ${CONTAINNER_NAME}
这种方式即可避免该问题