在Ubuntu上的docker中安裝Jenkins(docker、jenkins全部國內源)

一、安裝Ubuntu系統,實體機或者虛擬機都可以,我用得虛擬機,安裝的Ubuntu1804

二、運行Ubuntu系統,安裝docker:

1.添加源文件/etc/apt/sources.list.d/ustc.list

(也可以直接修改原來的/etc/apt/sources.list)

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe

2.安裝必要工具

sudo apt-get update
sudo apt-get -y install   apt-transport-https   ca-certificates   curl   software-properties-common

3.添加軟件源的 GPG 密鑰

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

4.向 source.list 中添加 Docker 軟件源

sudo add-apt-repository    "deb https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

5.更新緩存並安裝docker

sudo apt-get update
sudo apt-get -y install docker-ce

6.創建用戶組並添加當前用戶

sudo groupadd docker
sudo usermod -aG docker $USER

7.啓動和停止

安裝完成Docker後,默認已經啓動了docker服務,如需手動控制docker服務的啓停,可執行如下命令

# 啓動docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重啓docker
sudo service docker restart


三、安裝jenkins blueocean

  1. 安裝jenkins blueocean

建議使用的Docker映像是 jenkinsci/blueocean image來自 the Docker Hub repository。 該鏡像包含當前的長期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆綁了所有Blue Ocean插件和功能。這意味着你不需要單獨安裝Blue Ocean插件。

##拉取jenkinsci/blueocean鏡像
docker pull jenkinsci/blueocean

##啓動jenkins
docker run   -u root  --rm  -d -p 8081:8080 -p 50000:50000   
  -v /var/jenkins-data:/var/jenkins_home 
  -v /var/run/docker.sock:/var/run/docker.sock   jenkinsci/blueocean

說明:

  • --rm (可選) jenkinsci/blueocean 關閉時自動刪除Docker容器(下圖爲實例)。如果您需要退出Jenkins,這可以保持整潔。
  • -d(可選)jenkinsci/blueocean 在後臺運行容器(即“分離”模式)並輸出容器ID。如果您不指定此選項, 則在終端窗口中輸出正在運行的此容器的Docker日誌。
  • -p 8080:8080 映射(例如“發佈”)jenkinsci/blueocean 容器的端口8080到主機上的端口8080。 第一個數字代表主機上的端口,而最後一個代表容器的端口。因此,如果您爲此選項指定 -p 49000:8080 ,您將通過端口49000訪問主機上的Jenkins。
  • -p 50000:50000(可選)將 jenkinsci/blueocean 容器的端口50000 映射到主機上的端口50000。 如果您在其他機器上設置了一個或多個基於JNLP的Jenkins代理程序,而這些代理程序又與 jenkinsci/blueocean 容器交互(充當“主”Jenkins服務器,或者簡稱爲“Jenkins主”), 則這是必需的。默認情況下,基於JNLP的Jenkins代理通過TCP端口50000與Jenkins主站進行通信。

您可以通過“ 配置全局安全性” 頁面更改Jenkins主服務器上的端口號。如果您要將您的Jenkins主機的JNLP代理端口的TCP端口 值更改爲51000(例如),那麼您需要重新運行Jenkins(通過此 docker run …命令)並指定此“發佈”選項 -p 52000:51000,其中最後一個值與Jenkins master上的這個更改值相匹配,第一個值是Jenkins主機的主機上的端口號, 通過它,基於JNLP的Jenkins代理與Jenkins主機進行通信 - 例如52000。

  • -v jenkins-data:/var/jenkins_home(可選,但強烈建議)映射在容器中的/var/jenkins_home 目錄到具有名字 jenkins-data 的volume。 如果這個卷不存在,那麼這個 docker run 命令會自動爲你創建卷。 如果您希望每次重新啓動Jenkins(通過此 docker run ... 命令)時保持Jenkins狀態,則此選項是必需的 。 如果你沒有指定這個選項,那麼在每次重新啓動後,Jenkins將有效地重置爲新的實例。
  • -v /var/run/docker.sock:/var/run/docker.sock(可選 /var/run/docker.sock 表示Docker守護程序通過其監聽的基於Unix的套接字。 該映射允許jenkinsci/blueocean 容器與Docker守護進程通信, 如果 jenkinsci/blueocean 容器需要實例化其他Docker容器,則該守護進程是必需的。 如果運行聲明式管道,其語法包含agent部分用 docker
例如, agent { docker { ... } } 此選項是必需的。 在Pipeline Syntax 頁面上閱讀更多關於這個的信息 。

jenkinsci/blueocean Docker鏡像本身。如果此鏡像尚未下載,則此 docker run 命令 將自動爲您下載鏡像。此外,如果自上次運行此命令後發佈了此鏡像的任何更新, 則再次運行此命令將自動爲您下載這些已發佈的鏡像更新。 注意:這個Docker鏡像也可以使用以下 docker pull命令獨立下載(或更新) : docker pull

2.配置jenkins blueocean
下載安裝並運行Jenkins後,即將開始進入安裝嚮導。

當您第一次訪問新的Jenkins實例時,系統會要求您使用自動生成的密碼對其進行解鎖。

瀏覽到 http://ip:8080(或安裝時爲Jenkins配置的任何端口),首次加載會發現很慢,

 

 

出現這個情況時,是因爲Jenkins的默認更新鏡像用的國外的鏡像,把更新鏡像改成國內的即可。 首先進入Jenkins的安裝目錄

比如我是Linux系統,安裝在 /var/jenkins_home/下面,進入這個目錄,然後打開hudson.model.UpdateCenter.xml

##開容器的shell,進行配置
##查看當前運行的容器
root@test-VirtualBox:~# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS          PORTS
         NAMES
18d99b429ba8   jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago   Up 57 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50 000/tcp   dreamy_wozniak
###進入容器的shell
root@test-VirtualBox:~# docker exec -it 18d99b429ba8 bash
bash-5.1#
##進入jenkins的配置文件夾
bash-5.1# cd /var/jenkins_home/
bash-5.1# ls
com.dabsquared.gitlabjenkins.GitLabPushTrigger.xml                  jobs
com.dabsquared.gitlabjenkins.connection.GitLabConnectionConfig.xml  logs
config.xml                                                          nodeMonitors.xml
copy_reference_file.log                                             nodes
credentials.xml                                                     plugins
hudson.model.UpdateCenter.xml                                       queue.xml.bak
hudson.plugins.git.GitTool.xml                                      secret.key
identity.key.enc                                                    secret.key.not-so-secret
jenkins.install.InstallUtil.lastExecVersion                         secrets
jenkins.install.UpgradeWizard.state                                 updates
jenkins.security.QueueItemAuthenticatorConfiguration.xml            userContent
jenkins.security.UpdateSiteWarningsConfiguration.xml                users
jenkins.security.apitoken.ApiTokenPropertyConfiguration.xml         war
jenkins.telemetry.Correlator.xml                                    workflow-libs
bash-5.1#

這個配置文件; 將https://updates.jenkins.io/update-center.json;

修改成http://mirror.xmission.com/jenkins/updates/update-center.json;

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
  </site>
</sites>

之後重啓Jenkins服務,再重新刷新Jenkins啓動頁面即可。

 

在一次打開頁面並等待 解鎖 Jenkins 頁面出現。

Unlock Jenkins page

 

獲取密碼:

##進入容器
bash-5.1#
bash-5.1# cd /var/jenkins_home/secrets
bash-5.1# cat initialAdminPassword
9571fe1844a8412ab2c79d17124c1dc7
bash-5.1#

也可這樣獲取

因爲是採用docker容器的方式,可以通過查看這個容器的運行日誌來找到這個密碼

# docker ps                                                                                                             
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                               NAMES
8d5d57caacc8        jenkinsci/blueocean:latest   "/sbin/tini -- /usr/…"   19 seconds ago      Up 18 seconds       0.0.0.0:8080->8080/tcp, 50000/tcp   amazing_kalam

# docker logs -f amazing_kalam

 

 

之後根據提示一路操作就好,

四、其他

如果第一啓動的時候遇到:

Docker容器做端口映射報錯 docker: Error response from daemon: driver failed programming external connectivity

 

解決辦法 systemctl restart docker(重新啓動docker)

【Jenkins】修改Jenkins插件爲國內源

首頁 --> configure --> Manage Jenkins --> Advanced --> Update Site(頁面最下方‘升級站點’)

替換URL爲 清華大學倉庫地址:

https://updates.jenkins.io/update-center.json
改爲
https://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章