【微服务部署】使用Docker-compose部署Jenkins、SonarQube
作者:应用开发 来源:IT科技 浏览: 【大中小】 发布时间:2025-11-05 01:01:26 评论数:

一、微服务部安装
1、署使编写docker-compose部署Postgres、部署SonarQube、微服务部Jenkins的署使yml文件jenkins-compose.ymlPostgres:作为SonarQube的数据库存储SonarQube:代码质量检查Jenkins:jenkins/jenkins:lts镜像,jenkinsci/blueocean镜像缺少node运行时环境,部署导致node无法运行。微服务部关键配置说明( 宿主机 : Docker容器):/data/docker/ci/postgresql/data:/var/lib/postgresql/data # Postgres数据存储映射到宿主机目录/etc/localtime:/etc/localtime:ro # docker容器取宿主机的署使日期,:ro(read-only)表示只读,部署即docker容器只能读取宿主机的微服务部/etc/localtime文件,不能修改。署使/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 # 在docker容器中运行宿主机docker命令,部署如果宿主机没有这个文件,微服务部可以使用以下命令进行安装。署使这里将Docker容器的部署内存设置为10G,因为我们NodeJS打包需要设置的内存为8G。 复制yum install libtool-ltdl-2.4.2-22.el7_3.x86_641.jenkins-compose.yml完整内容如下:
复制version: 3 networks: prodnetwork: driver: bridge services: sonardb: image: postgres:12.2 restart: always ports: - "5433:5432" networks: - prodnetwork volumes: - /data/docker/ci/postgresql:/var/lib/postgresql - /data/docker/ci/postgresql/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar - POSTGRES_DB=sonar - TZ=Asia/Shanghai sonar: image: sonarqube:10.1.0-community restart: always ports: - "19000:9000" - "19092:9092" networks: - prodnetwork depends_on: - sonardb volumes: - /data/docker/ci/sonarqube/conf:/opt/sonarqube/conf - /data/docker/ci/sonarqube/data:/opt/sonarqube/data - /data/docker/ci/sonarqube/logs:/opt/sonarqube/logs - /data/docker/ci/sonarqube/extensions:/opt/sonarqube/extensions - /data/docker/ci/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins environment: - TZ=Asia/Shanghai - SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5432/sonar - SONARQUBE_JDBC_USERNAME=sonar - SONARQUBE_JDBC_PASSWORD=sonar jenkins: image: jenkins/jenkins:lts user: root privileged: true restart: always ports: - "18080:8080" networks: - prodnetwork volumes: - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock - /etc/docker/daemon.json:/etc/docker/daemon.json - /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 - /etc/localtime:/etc/localtime:ro - $HOME/.ssh:/root/.ssh - /data/docker/ci/jenkins/lib:/var/lib/jenkins/ - /data/docker/ci/jenkins/home:/var/jenkins_home depends_on: - sonar environment: - TZ=Asia/Shanghai - NEXUS_PORT=8081 - SONAR_PORT=9000 - SONAR_DB_PORT=5432 - JAVA_OPTS=-Xms512m -Xmx10240m deploy: resources: limits: cpus: "2.00" memory: 10G reservations: memory: 200M cap_add: - ALL1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.因并不是每个项目都需要自己的Maven私服,所以这里去除了Maven私服Nexus的部署,如果需要,直接在jenkins-compose.yml文件中添加即可:
复制nexus: image: sonatype/nexus3 restart: always ports: - "18081:8081" networks: - prodnetwork volumes: - /data/docker/ci/nexus:/nexus-data1.2.3.4.5.6.7.8.9.在Jenkins的depends_on:添加。
复制depends_on: - nexus - sonar1.2.3. 2、创建宿主机挂载目录并赋权 复制mkdir -p /data/docker/ci/nexus /data/docker/ci/jenkins/lib /data/docker/ci/jenkins/home /data/docker/ci/sonarqube /data/docker/ci/postgresql /data/docker/ci/postgresql/data chmod -R 777 /data/docker/ci/nexus /data/docker/ci/jenkins/lib /data/docker/ci/jenkins/home /data/docker/ci/sonarqube /data/docker/ci/postgresql /data/docker/ci/postgresql/data1.2.3. 3、在 jenkins-compose.yml 文件所在目录下执行安装启动命令启动命令 复制docker-compose -f jenkins-compose.yml up -d1. 停止命令 复制docker-compose -f jenkins-compose.yml down1. 重新创建某一个容器命令 复制docker-compose -f jenkins-compose.yml up --force-recreate --no-deps 服务名称1. 查看容器运行情况 复制[root@root server]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b28f1878ee08 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 20 hours ago Up 19 hours 50000/tcp, 0.0.0.0:18080->8080/tcp docker-jenkins-1 cff7c0d88150 sonarqube:10.1.0-community "/opt/sonarqube/dock…" 20 hours ago Up 20 hours 0.0.0.0:19000->9000/tcp, 0.0.0.0:19092->9092/tcp docker-sonar-1 90dacc85efb1 postgres:12.2 "docker-entrypoint.s…" 20 hours ago Up 20 hours 0.0.0.0:5433->5432/tcp docker-sonardb-11.2.3.4.5. 查看某一容器的运行日志 docker logs -f 容器id 复制[root@root server]# docker logs -f b28f1878ee081. 重启某一容器 docker restart 容器id 复制[root@root server]# docker restart b28f1878ee081. 4、站群服务器通过界面访问Jenkins,通过提示的路径找到初始密码并输入,然后进行下一步



报错日志:
复制2023-08-09 07:44:36.664+0000 [id=72] INFO h.m.UpdateCenter$UpdateCenterConfiguration#download: Downloading github-branch-source 2023-08-09 07:44:36.685+0000 [id=72] SEVERE h.model.UpdateCenter$DownloadJob#run: Failed to install github-branch-source java.io.IOException: Failed to load: GitHub Branch Source Plugin (1696.v3a_7603564d04) - Failed to load: GitHub plugin (1.34.5) - Jenkins (2.346.1) or higher required at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:1016) at hudson.PluginManager.dynamicLoad(PluginManager.java:917) Caused: java.io.IOException: Failed to install github-branch-source plugin at hudson.PluginManager.dynamicLoad(PluginManager.java:930) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2179) Caused: java.io.IOException: Failed to dynamically deploy this plugin at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2183) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1846) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121) at java.base/java.lang.Thread.run(Thread.java:829)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.二、配置
1、登录到Jenkins之后,首先进入系统管理然后升级Jenkins版本









