docker pull jenkins/jenkins
mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount
注:这一步要进行端口映射,以及挂在映射,其中要在jenkins容器中运行docker命令要将/var/run/docker.sock地址进行映射,并且为了避免后续的权限问题,建议以root用户启动容器
docker run -d -p 10240:8080 -p 10241:50000 --privileged --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:latest
访问Jenkins页面,输入你的ip加上10240
在对应地址获取首次登陆管理员密码,并下载对应插件。
华为云下载源,自行选择版本
下面的示例使用的是 3.8.1 版本
wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
解压 apache-maven-3.8.1-bin.tar.gz
tar -zxvf apache-maven-3.8.1-bin.tar.gz
移动到 /usr/local 目录
mv apache-maven-3.8.1 /usr/local/
vim ~/.bashrc
在最后面追加
export MAVEN_HOME=/usr/local/apache-maven-3.8.1/
export PATH=${PATH}:${MAVEN_HOME}/bin
使环境变量生效
source ~/.bashrc
jenkins配置页面添加环境变量【重要】
系统管理–>系统配置(配置全局设置和路径)–>环境变量
build image阶段踩过sh "sh **.sh"的坑!!!!!
node {
def mvnHome
stage('Preparation') { // for display purposes
git 'https://gitee.com/baomidou/kisso-spring-boot.git'
}
dir('/var/jenkins_home/workspace/spring-demo1') { // 切换到/home/jenkins目录中做一些事情
// some block
stage('Maven Build') {
sh "mvn clean package"
}
stage('Build Image') {
sh "sh /var/jenkins_home/workspace/script/springboot-demo-build-image.sh"
}
}
}
mkdir /var/jenkins_home/workspace/scripts/
vim /var/jenkins_home/workspace/scripts/springboot-demo-build-image.sh
# 进入到springboot-demo目录
cd ../spring-demo1
# 编写Dockerfile文件
cat <<EOF > Dockerfile
FROM openjdk:8-jre-alpine
COPY target/kisso_springboot-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT ["java","-jar","/springboot-demo.jar"]
EOF
echo "Dockerfile created successfully!"
# 基于指定目录下的Dockerfile构建镜像
docker build -t 192.168.1.100:5000/springboot-demo:v1.0 .
# push镜像,这边需要阿里云镜像仓库登录,在当前安装了jenkins主机上登录
docker push 192.168.1.100:5000/springboot-demo:v1.0
【注意】这里的docker仓库是自己创建的私服,创建方法为
docker创建私有仓库
若直接将镜像push到私服地址,会报错:
http: server gave HTTP response to HTTPS client
解决办法:
linux容器:
#增加一个daemon.json文件
vim /etc/docker/daemon.json
在/etc/docker/daemon.json中加入
{ "insecure-registries":["192.168.1.100:5000"] }
然后重启docker服务
systemctl daemon-reload
systemctl restart docker