docker+jenkins+阿里雲容器服務自動化部署

一、在服務器上安裝docker

請參考我的這篇文章:ubuntu16.04中下載安裝docker

二、在阿里雲容器服務構建鏡像

1、進入阿里雲容器鏡像服務

地址:容器鏡像服務
根據文檔先創建一個命令空間,然後就可以創建一個你項目的鏡像倉庫了
image.png
根據提示創建完鏡像倉庫,然後進入構建,並添加規則
image.png
image.png
這裏的Dockerfile是你的項目根目錄下的Dockerfile,文件名一定要相同。鏡像版本根據自己情況寫。
然後就可以點擊立即構建來構建鏡像了。

三、在服務器上安裝Jenkins(我的是ubuntu)

1、安裝java環境

Jenkins基於Java, 所以需要先安裝java。
首先,在windows下載好jdk1.8,然後通過ftp上傳到服務器
解壓java到相應目錄,我一般習慣把安裝的軟件放到目錄/usr/local下。

tar -zxvf jdk-8u181-linux-x64.tar.gz /usr/local
編輯環境變量,在/etc/profile文件中添加環境變量,Linux的所有用戶都可以使用。

vim /etc/profile
在文件最後添加內容如下:

JAVA_HOME=/usr/local/java/jdk1.8.0_181
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

重新加載環境變量的配置文件:source /etc/profile
輸入以下命令,顯示如圖,則表示安裝成功。
image.png

2、安裝Jenkins

包含在默認Ubuntu軟件包中的Jenkins版本往往落後於項目本身的最新版本。 爲了利用最新的修復和功能,我們將使用項目維護的軟件包來安裝Jenkins。

1)首先,我們將存儲庫密鑰添加到系統。
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

2)添加密鑰後,系統將返回OK 。 接下來,我們將Debian包存儲庫地址附加到服務器的sources.list
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

3)當這兩個都到位時,我們將運行update ,以便apt-get將使用新的存儲庫:
sudo apt-get update

4)最後,我們將安裝Jenkins及其依賴項:
sudo apt-get install jenkins

如果啓動時遇到報錯ERROR:
No Java executable found in current PATH: /bin:/usr/bin:/sbin:/usr/sbin
需要給java路徑建立一個軟鏈接
ln -s /usr/local/jdk1.8/bin/java(換成對應你自己的) /usr/bin/java

3、安裝簡介

通過上面的安裝

1)Jenkins將作爲一個Linux守護進程
2)創建一個名爲Jenkins的Linux用戶
3)生成日誌文件 /var/log/jenkins/jenkins.log
4)Jenkins 默認端口是8080,在配置文件/etc/default/jenkins中可以修改。

4、設置Jenkins

使用服務器域名或IP地址訪問Jenkins的默認端口8080:http:// ip_address_or_domain_name :8080

我們應該看到“解鎖Jenkins”屏幕,需要輸入密碼
回到服務器中,輸入以下命令查看初始密碼:cat /var/log/jenkins/jenkins.log
複製日誌中的32位字符串到jenkins解鎖窗口中,然後下一步點擊“安裝建議的插件”選項,等待插件的安裝

安裝完成後,系統將提示您設置第一個管理用戶。 可以跳過此步驟,並使用上面使用的初始密碼作爲admin繼續,但是我們將花一點時間創建用戶。
創建完用戶後,我們的jenkins就安裝好了。
image.png

5、新建任務

點擊新建任務,然後選擇流水線任務
image.png
進入任務配置,寫寫一個描述,然後選擇github項目,並輸入github項目地址
image.png
然後根據項目輸入pipeline腳本:
image.png

pipeline腳本:

pipeline {
  agent any
  stages {
    stage('啓動前準備') {
      steps {
        echo 'remove image'
        // 停止容器
        sh 'docker stop canary(啓動時重命名的鏡像名)'
        // 刪除容器
        sh 'docker rm canary'
        // 刪除鏡像
        sh 'docker rmi 從阿里雲容器服務獲取的鏡像名(記得帶上版本)'
      }
    }
    stage('獲取鏡像') {
      steps {
        echo 'get image'
        sh 'docker login --username=阿里雲賬號名 registry.cn-hangzhou.aliyuncs.com --password=阿里雲密碼'
        sh 'docker pull 從阿里雲容器服務獲取的鏡像名(記得帶上版本)'
      }
    }
    stage('啓動服務') {
      steps {
        echo 'start simple-beauty-front'
        sh 'docker run -d -p 8081(啓動時的服務器端口):80(啓動時的容器暴露端口) --name canary(重命名) -e VIRTUAL_HOST=(域名) 從阿里雲容器服務獲取的鏡像名(記得帶上版本)'
      }
    }
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章