自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【微服務(wù)部署】使用Docker-compose部署Jenkins、SonarQube

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

一、安裝

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

  • Postgres:作為SonarQube的數(shù)據(jù)庫存儲
  • SonarQube:代碼質(zhì)量檢查
  • Jenkins:jenkins/jenkins:lts鏡像,jenkinsci/blueocean鏡像缺少node運行時環(huán)境,導(dǎo)致node無法運行。

關(guān)鍵配置說明( 宿主機(jī) : Docker容器):

  • /data/docker/ci/postgresql/data:/var/lib/postgresql/data # Postgres數(shù)據(jù)存儲映射到宿主機(jī)目錄
  • /etc/localtime:/etc/localtime:ro # docker容器取宿主機(jī)的日期,:ro(read-only)表示只讀,即docker容器只能讀取宿主機(jī)的/etc/localtime文件,不能修改。
  • /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 # 在docker容器中運行宿主機(jī)docker命令,如果宿主機(jī)沒有這個文件,可以使用以下命令進(jìn)行安裝。
  • 這里將Docker容器的內(nèi)存設(shè)置為10G,因為我們NodeJS打包需要設(shè)置的內(nèi)存為8G。
yum install libtool-ltdl-2.4.2-22.el7_3.x86_64

jenkins-compose.yml完整內(nèi)容如下:

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、創(chuàng)建宿主機(jī)掛載目錄并賦權(quán)

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 文件所在目錄下執(zhí)行安裝啟動命令

  • 啟動命令
docker-compose -f jenkins-compose.yml up -d
  • 停止命令
docker-compose -f jenkins-compose.yml down
  • 重新創(chuàng)建某一個容器命令
docker-compose -f jenkins-compose.yml up --force-recreate --no-deps 服務(wù)名稱
  • 查看容器運行情況
[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,通過提示的路徑找到初始密碼并輸入,然后進(jìn)行下一步

[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、部分插件安裝失敗,根據(jù)后臺日志可知,部分插件因為jenkins版本太低,所以不能安裝,這里先進(jìn)行下一步,在系統(tǒng)中升級jenkins版本之后,再繼續(xù)安裝插件。(jenkins/jenkins:lts鏡像里面集成的不是最新的jenkins,但在下載插件時,是下載的最新的插件,導(dǎo)致不兼容,所以無法下載)

報錯日志:

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之后,首先進(jìn)入系統(tǒng)管理然后升級Jenkins版本

2、然后安裝所需插件,系統(tǒng)管理 > 插件管理

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

3、系統(tǒng)管理 > 系統(tǒng)配置

  • Maven參數(shù)配置,此處根據(jù)自己服務(wù)器的配置情況配置。

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

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

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

  • SonarQube Scanner安裝

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

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

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

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

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-10-12 09:13:14

2023-09-14 20:55:52

NodeJSDocker

2023-06-28 15:56:10

微服務(wù)容器無服務(wù)器計算

2017-05-23 15:53:52

docker服務(wù)容器

2023-09-12 07:06:04

2023-10-17 14:29:35

2023-04-06 07:18:14

2023-05-14 23:30:38

PrestoHadoop函數(shù)

2023-11-27 00:18:38

2023-05-29 07:39:49

2023-06-26 00:07:14

2023-10-12 21:15:08

微服務(wù)Docker

2019-10-21 11:00:29

微服務(wù)架構(gòu)部署策略

2010-12-15 16:17:59

服務(wù)部署

2019-09-17 08:00:24

DockerCompose命令

2019-12-20 10:28:54

工具代碼開發(fā)

2023-09-26 07:34:24

Docker部署依賴包

2023-10-23 00:06:29

2023-10-10 13:49:00

Docker容器

2023-10-13 18:57:22

點贊
收藏

51CTO技術(shù)棧公眾號