目錄
整體架構(gòu)
環(huán)境準(zhǔn)備
安裝docker以及docker-compose
jenkins安裝
maven安裝
portainer面板安裝
sonarqube安裝?
在項目中增加dockerfile和compose.yml腳本
?Dockerfile腳本內(nèi)容
compose.yml腳本內(nèi)容
jenkins安裝必要插件
jenkins增加流水線任務(wù)
增加pipeline任務(wù)job
?增加pipeline腳本
整體架構(gòu)
環(huán)境準(zhǔn)備
安裝docker以及docker-compose
#官網(wǎng)https://docs.docker.com/engine/install/centos/
sudo yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
jenkins安裝
docker安裝,啟動命令:docker run --name jenkins \
--restart always \
-p 8080:8080 \
-p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:2.413
maven安裝
portainer面板安裝
docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 \
--name portainer-alpha \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /application/portainer/data:/data \
portainer/portainer-ce:2.18.4
sonarqube安裝?
docker安裝,啟動腳本:/usr/local/sonar/compose.yml
啟動命令:docker-compose up -d
compose.yml文件內(nèi)容如下:
services:
postgres:
image: postgres
container_name: pgdb
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
sonarqube:
image: sonarqube:9.9.1-community
container_name: sonarqube
restart: always
depends_on:
- postgres
ports:
- 9000:9000
environment:
SONAR_JDBC_URL: jdbc:postgresql://pgdb:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
在項目中增加dockerfile和compose.yml腳本
?Dockerfile腳本內(nèi)容
# jar鏡像構(gòu)建腳本
# 在jdk基礎(chǔ)鏡像上構(gòu)架自定義jar包鏡像
# 更改APP_NAME和ENTRYPOINT里面的jar名稱,EXPOSE端口
# 基礎(chǔ)鏡像 指定jdk鏡像名和及其版本
FROM openjdk:8u102
# 用標(biāo)簽寫好開發(fā)者信息和系統(tǒng)描述信息
LABEL appdesc="xxx平臺系統(tǒng)-系統(tǒng)服務(wù)" auth1="阿來小同學(xué)" email1="xxx@xxx.com"
#接收來自compose.yml文件中來的構(gòu)建鏡像參數(shù)
ARG ACTIVE
#dockerfile上下文用的環(huán)境變量,后面啟動命令無法引用arg參數(shù),所以需要環(huán)境環(huán)境變量來做中間轉(zhuǎn)換
ENV APP_NAME=xxxxxxx APP_ACTIVE=$ACTIVE
#把宿主機(jī)的jar包復(fù)制到docker鏡像的目錄內(nèi)
COPY ${APP_NAME}.jar /application/${APP_NAME}.jar
#指定docker內(nèi)部的工作目錄
WORKDIR /application
#描述下應(yīng)用的端口
EXPOSE 12002
#數(shù)據(jù)卷掛載
VOLUME ["/application/logs"]
#執(zhí)行命令以及參數(shù) 每一個字符串參數(shù)不要包含空格
ENTRYPOINT ["java","-XX:MetaspaceSize=256m","-XX:MaxMetaspaceSize=512m","-Xms256m","-Xmx256m","-Xmn128m","-Xss512k","-XX:SurvivorRatio=8","-XX:+UseConcMarkSweepGC","-jar","xxxxxxx.jar","--spring.profiles.active=${APP_ACTIVE}"]
compose.yml腳本內(nèi)容
#jar鏡像運行腳本
services:
testservice:
build:
context: ./
args:
- ACTIVE=${ACTIVE}
- TAG=${TAG}
image: 自定義鏡像名:${TAG:-latest}
container_name: 自定義容器名
restart: always
volumes:
- /application/logs:/application/logs
ports:
- 12002:12002
jenkins安裝必要插件
WXWork Notification Plugin? ?
Git
Publish Over SSH
Pipeline
SonarQube Scanner for Jenkins
jenkins增加流水線任務(wù)
增加pipeline任務(wù)job
?增加pipeline腳本
文章來源:http://www.zghlxwxcb.cn/news/detail-599772.html
?最后構(gòu)建運行即可,看控制臺實時日志排查問題文章來源地址http://www.zghlxwxcb.cn/news/detail-599772.html
到了這里,關(guān)于【jenkins】idea+jenkins+docker+dockerfile+compose流水線部署java應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!