成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【微服務部署】使用Docker-compose部署Jenkins、SonarQube

運維
因并不是每個項目都需要自己的Maven私服,所以這里去除了Maven私服Nexus的部署,如果需要,直接在jenkins-compose.yml文件中添加即可。

一、安裝

1、編寫docker-compose部署Postgres、SonarQube、Jenkins的yml文件jenkins-compose.yml

  • Postgres:作為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_64

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:
      - ALL

因并不是每個項目都需要自己的Maven私服,所以這里去除了Maven私服Nexus的部署,如果需要,直接在jenkins-compose.yml文件中添加即可:

nexus:
    image: sonatype/nexus3
    restart: always
    ports:
      - "18081:8081"
    networks:
      - prodnetwork
    volumes:
      - /data/docker/ci/nexus:/nexus-data

在Jenkins的depends_on:添加。

depends_on:
      - nexus
      - sonar

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/data

3、在 jenkins-compose.yml 文件所在目錄下執行安裝啟動命令

  • 啟動命令
docker-compose -f jenkins-compose.yml up -d
  • 停止命令
docker-compose -f jenkins-compose.yml down
  • 重新創建某一個容器命令
docker-compose -f jenkins-compose.yml up --force-recreate --no-deps 服務名稱
  • 查看容器運行情況
[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-1
  • 查看某一容器的運行日志 docker logs -f 容器id
[root@root server]# docker logs -f b28f1878ee08
  • 重啟某一容器 docker restart 容器id
[root@root server]# docker restart  b28f1878ee08

4、通過界面訪問Jenkins,通過提示的路徑找到初始密碼并輸入,然后進行下一步

[root@ZvRiIw4706 docker]# cd /data/docker/ci/jenkins/home/secrets
[root@ZvRiIw4706 secrets]# ls
filepath-filters.d  initialAdminPassword  jenkins.model.Jenkins.crumbSalt  master.key  org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY  slave-to-master-security-kill-switch  whitelisted-callables.d
[root@ZvRiIw4706 secrets]# cat initialAdminPassword

5、選擇安裝推薦插件即可

6、插件安裝中

7、部分插件安裝失敗,根據后臺日志可知,部分插件因為jenkins版本太低,所以不能安裝,這里先進行下一步,在系統中升級jenkins版本之后,再繼續安裝插件。(jenkins/jenkins:lts鏡像里面集成的不是最新的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、登錄到Jenkins之后,首先進入系統管理然后升級Jenkins版本

2、然后安裝所需插件,系統管理 > 插件管理

  • Blue Ocean :Jenkins Pipeline設計的一個聚合工具,圖形化Pipeline的流程,使流水線更加直觀。
  • SonarQube Scanner for Jenkins:代碼質量掃描工具,Jenkins掃描代碼后將結果發送到SonarQube Server。
  • NodeJS Plugin :打包NodeJs項目時,需要的插件,用于運行NodeJs環境。
  • Maven Integration plugin:Maven工程打包插件。
  • Publish Over SSH:將打包后的文件,發送到遠程服務器。

3、系統管理 > 系統配置

  • Maven參數配置,此處根據自己服務器的配置情況配置。

-Xms256m -Xmx512m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m
  • SonarQube servers配置,此處配置我們使用docker-compose部署的SonarQube,Server authentication token必填,這個在后續步驟會說明如何從SonarQube獲取生成token。

  • Publish over SSH配置,這里配置我們需要部署到的服務器,可以部署多個。點擊下側的“高級”,填寫服務器密碼和端口。

4、系統管理 > 全局工具配置,這里主要安裝一些所需插件需要的軟件環境,jenkins/jenkins:lts鏡像默認裝有openjdk和git,如果沒有特殊要求,我們可以不安裝,我們在這里安裝SonarQube Scanner、Maven、NodeJS。

  • SonarQube Scanner安裝

  • Maven安裝,最好自己下載后上傳到服務器,因為使用服務器下載安裝很慢。

  • Maven全局配置,配置Maven的配置文件

  • 修改Maven全局配置中配置文件里面的jar包存儲路徑,否則不同任務構建都會重新下載jar包。

  • NodeJS安裝,選擇自己所需要的版本,同時如果有其他工具包可以在下方填寫,比如我們使用的是pnpm,使用的鏡像源是https://registry.npm.taobao.org ,可以在下方填寫:
pnpm -registry=https://registry.npm.taobao.org

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-10-12 09:13:14

2023-09-14 20:55:52

NodeJSDocker

2023-06-28 15:56:10

微服務容器無服務器計算

2017-05-23 15:53:52

docker服務容器

2023-09-12 07:06:04

2023-10-17 14:29:35

2023-04-06 07:18:14

2023-10-12 21:15:08

微服務Docker

2023-11-27 00:18:38

2023-05-14 23:30:38

PrestoHadoop函數

2023-05-29 07:39:49

2023-06-26 00:07:14

2019-10-21 11:00:29

微服務架構部署策略

2010-12-15 16:17:59

服務部署

2019-12-20 10:28:54

工具代碼開發

2019-09-17 08:00:24

DockerCompose命令

2023-09-26 07:34:24

Docker部署依賴包

2023-10-23 00:06:29

2023-10-13 18:57:22

2023-10-10 13:49:00

Docker容器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区日本 | 国产精品亚洲片在线播放 | 天天爽夜夜操 | 欧美国产日韩精品 | 欧美成人一级 | 欧美日韩一区二区三区四区 | 久久久久欧美 | 久久久久精 | 国产日韩精品在线 | 国产精品久久欧美久久一区 | 日韩毛片网 | 天天拍天天操 | 亚洲精品在线国产 | 国产精品欧美精品日韩精品 | 国产乱码精品一品二品 | 日本福利视频 | 久久久久国产精品午夜一区 | wwwxxx日本在线观看 | 人人干天天干 | 久久亚洲天堂 | 国产小视频在线 | 欧美亚洲第一区 | 黄色大片在线视频 | 亚洲免费人成在线视频观看 | 天天干,夜夜操 | 在线色网 | 国产视频一区二区三区四区五区 | 无码日韩精品一区二区免费 | 在线播放一区二区三区 | 99re热精品视频 | 九九热这里只有精品6 | 91色综合 | 国产精品毛片 | 色综合天天综合网国产成人网 | 无码一区二区三区视频 | 一区二区三区视频免费观看 | 精品国产一区二区国模嫣然 | 国产一区二区三区免费观看在线 | 尤物视频在线免费观看 | 91原创视频| 亚洲高清视频在线观看 |