安装Jenkinshttps://www.jenkins.io/zh/doc/book/installing/
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc
yum install -y yum-utils device-mapper-persistent-data lvm2
配置一个稳定(stable)的仓库、仓库配置会保存到/etc/yum.repos.d/docker-ce.repo文件中
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
更新Yum安装的相关Docke软件包&安装Docker CE
yum update -y && yum install docker-ce
创建目录
mkdir /etc/docker
配置daemon.json文件
cat > /etc/docker/daemon.json <
说明"registry-mirrors": ["https://98zyayk8.mirror.aliyuncs.com"]是配置镜像加速器
systemctl daemon-reload && systemctl restart docker && systemctl enable docker
docker --version
wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
tar -zxvf apache-maven-3.8.4-bin.tar.gz
/etc/profile新增
export MAVEN_HOME=/root/apache-maven-3.8.4
export PATH=$MAVEN_HOME/bin:$PATH
配置生效
source /etc/profile
查看是否生效
mvn -v
下载
wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
解压
tar -zxvf apache-maven-3.3.9-bin.tar.gz
环境变量配置
/etc/profile
export MAVEN_HOME=/root/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
配置生效
source /etc/profile
是否生效
mvn -v
前提安装Dcoker基础上,
创建目录
mkdir -p /root/jenkins-data
创建容器
docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /root/jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/apache-maven-3.3.9:/usr/local/maven \
jenkinsci/blueocean
-d 可选)jenkinsci/blueocean
在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志
-p 8080:8080而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站
-p 50000:50000进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。
(可选,但强烈建议)映射在容器中的`/var/jenkins_home` 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例
-v /root/jenkins/jenkins-data:/var/jenkins_home : 所述的 jenkins-data
卷也可以 docker volume create命令创建: docker volume create jenkins-data
代替映射 /root/jenkins/jenkins-data 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v
/root/jenkins/jenkins-data:/var/jenkins_home
会将容器的 /var/jenkins_home
目录映射到 本地计算机上目录中的 /root/jenkins/jenkins-data 目录
-v /var/run/docker.sock:/var/run/docker.sock(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker
[root@centos harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
afc56f46c75f jenkinsci/blueocean "/sbin/tini -- /usr/…" 12 seconds ago Up 7 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp lucid_maxwell
[root@centos apache-maven-3.8.4]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9e5e250b259 jenkinsci/blueocean "/sbin/tini -- /usr/…" 44 seconds ago Up 43 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp nostalgic_wing
[root@centos apache-maven-3.8.4]# docker exec -it e9e5e250b259 /bin/bash
bash-5.1# cat /var/jenkins_home/secrets/initialAdminPassword
e0991b630c334d40bbe51c0027097cbc
进入容器 docker exec -it e9e5e250b259 /bin/bash
把密钥填入一下e0991b630c334d40bbe51c0027097cbc
界面点击保存并完成
查找插件
确认安装
结果
输入oracle完整账号
{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"registry-mirrors": ["https://98zyayk8.mirror.aliyuncs.com"],"insecure-registries":["harbor.register"]
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.170 harbor.register
clean package docker:build
[root@centos ~]# docker login harbor.register
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
harbor-regisry
admin
Harbor12345
[email protected]
说明依赖jdk需要公开
创建容器
docker run -di --name=rurekaserver -p:8000:8000 harbor.register/eurekaserver/eurekaserver:v1
package com.example.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}
}
#定制的镜像基于java(这里java是jdk镜像,latest的版本)镜像
FROM harbor.register/jdk/jdk1.8:v1
#指定镜像创建者信息
MAINTAINER zhuzq
#其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的 /tmp
VOLUME /tmp
#把eurekaserver.jar 拷贝到容器eurekaserver.jar
ADD eurekaserver.jar eurekaserver.jar
#在容器启动程序
ENTRYPOINT ["java","-jar","/eurekaserver.jar"]
server:
port: 8000
eureka:
instance:
hostname: localhost # 指定Eureka主机
client:
register-with-eureka: false # 指定当前主机是否向Eureka服务器进行注册
fetch-registry: false # 指定当前主机是否要从Eurka服务器下载服务注册列表
service-url: # 服务暴露地址
defaultZone: http://localhost:8000/eureka
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
# server:
# enable-self-preservation: false # 关闭自我保护
4.0.0
com.example
eurekaserver
v1
jar
org.springframework.boot
spring-boot-starter-parent
2.1.7.RELEASE
1.8
Greenwich.SR1
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-autoconfigure
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
eurekaserver
org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
1.0.0
harbor.register/eurekaserver/${project.artifactId}:${project.version}
${project.basedir}/src/main/resources/docker
harbor.register/jdk/jdk1.8:v1
true
harbor-regisry
/
${project.build.directory}
${project.build.finalName}.jar
参考
利用docker-maven-plugin自动化部署__wings的博客-CSDN博客_docker-maven-pluginhttps://blog.csdn.net/weixin_40760239/article/details/110078850?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164173605016780261949046%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fnavwordall.%2522%257D&request_id=164173605016780261949046&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~navwordall~first_rank_ecpm_v1~rank_v31_ecpm-2-110078850.first_rank_v2_pc_rank_v29&utm_term=jenkins&spm=1018.2226.3001.4187