糖果怪物
59.65M · 2026-03-05
在idea中安装阿里检查代码的插件:Alibaba Java Coding Guidelines(XenoAmess TPM),这个插件为 Java 开发者提供了编码标准和建议,旨在提高代码质量,提升可读性,可维护性,以及性能等
实现流程:
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "8000:8080"
environment:
- JAVA_OPTS=-Duser.timezone=GMT+08 -Xms2g -Xmx2g
volumes:
- ./data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
user: root
自己本地访问,写本地即可,如果希望别人也可以访问,需要填写IP地址或者域名
Jenkins 流水线配置是 Jenkins 中用于定义和执行自动化构建、测试和部署过程的一种方式
在声明式流水线中,整个流水线过程被定义在一个 pipeline 块中,该块包含了流水线执行所需的所有指令和阶段。
pipeline {
agent any // 指定流水线运行的节点,any 表示任何可用的节点
stages {
stage('Stage Name1') { // 定义阶段
steps {
// 定义在该阶段执行的步骤
echo 'Hello, World!'
}
},
stage('Stage Name2') { // 定义阶段
steps {
// 定义在该阶段执行的步骤
echo 'Hello, World!'
}
}
}
}
下方流水线
pipeline {
agent any
parameters {
choice(name: 'services', choices: ['kzzyl-admin'], description: '请选择你的服务')
choice(name: 'GIT_TAG', choices: ['master', 'dev', 'test', 'prod'], description: '请选择你的分支')
string(name: 'GIT_URL', defaultValue: 'https://gitee.com/kun020126/zzyl.git', description: '请输入Git仓库地址')
}
environment {
DOCKER_TAG = "1.0"
}
// 工具配置
tools {
maven 'maven'
jdk 'jdk17'
}
stages {
stage('清除工作空间') {
steps {
cleanWs()
}
}
stage('拉取Git代码') {
steps {
echo '正在拉取Git代码'
// $class 指定使用插件
// GitSCM 拉取代码插件
checkout([
$class: 'GitSCM',
branches: [
// 分支
[name: "${params.GIT_TAG}"]
],
// 是否初始化git子模块
doGenerateSubmoduleConfigurations: false,
// 配置访问凭证
userRemoteConfigs: [[
credentialsId: 'github-pt1', url: "${params.GIT_URL}"
]]
])
// 输出当前工作目录
// sh "pwd"
}
}
stage('Maven打包') {
steps {
script {
echo '正在执行maven打包....'
sh 'mvn clean install -DskipTests'
}
}
}
stage('构建镜像') {
steps {
echo "进入target目录执行镜像打包......"
sh "docker build -t ${params.services} ${params.services}/."
}
}
stage('启动程序') {
steps {
sh 'docker run ${params.services}'
}
}
}
post {
success {
echo '构建成功'
}
failure {
echo '构建失败'
}
}
}
FROM jenkins/jenkins:lts
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc
RUN echo "deb [arch=$(dpkg --print-architecture)
signed-by=/usr/share/keyrings/docker-archive-keyring.asc]
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow json-path-api"
version: '3.9'
services:
jenkins-dind:
user: root
image: docker:dind
container_name: jenkins-docker-dind
privileged: true
networks:
jenkins:
aliases:
- docker
environment:
- DOCKER_TLS_CERTDIR=/certs
volumes:
- ./docker-certs:/certs/client
- jenkins-data:/var/jenkins_home
ports:
- "2376:2376"
jenkins-docker:
user: root
image: jenkins-docker
container_name: jenkins-docker
networks:
jenkins:
aliases:
- jenkins
ports:
- "8080:8080"
- "50000:50000"
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
- DOCKER_TLS_VERIFY=1
volumes:
- jenkins-data:/var/jenkins_home
- ./docker-certs:/certs/client:ro
networks:
jenkins:
driver: bridge
volumes:
jenkins-data:
driver: local
driver_opts:
type: none
o: bind
device: D:/docker_config/jenkins/data
ELK是一个开源的日志管理平台,由三个核心组件组成:Elasticsearch、Logstash 和 Kibana。这三个组件共同协作,提供了一个从日志收集、处理、存储到分析、可视化的完整解决方案。