如何利用Travis-CI在線構建yumrepo鏡像

- >

docker run -t --rm -v ${PWD}/rpms:/rpms -v ${PWD}/kubernetes.repo:/etc/yum.repos.d/kubernetes.repo centos:7.4.1708

bash -c

"yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm &&

yum install -y https://download.ceph.com/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm &&

mkdir -p /rpms &&

yum remove -y python-chardet &&

yum -y install --downloadonly --downloaddir=/rpms docker docker-python docker-compose python-chardet python-requests &&

yum -y install --downloadonly --downloaddir=/rpms audit rsync jq git tcpdump nc bind-utils net-tools &&

yum -y install --downloadonly --downloaddir=/rpms ceph-deploy ceph ceph-radosgw rbd-nbd rbd-mirror open-vm-tools nfs-utils &&

yum -y install --downloadonly --downloaddir=/rpms kubernetes-cni-0.6.0 kubectl-1.10.3 kubelet-1.10.3 kubeadm-1.10.3 &&

yum install -y createrepo &&

yum clean all &&

createrepo /rpms"

- sudo chmod -R 755 ${PWD}/rpms

- docker build -t alanpeng/yum-repo:$TRAVIS_BRANCH .

- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD

- docker push alanpeng/yum-repo:$TRAVIS_BRANCH

內容理解並不困難,其功能也就是在Travis-CI平臺啟動docker環境,並下載一個centos:7.4.1708的容器鏡像,通過dockerrun命令拉起改容器,並做好相應的文件掛載(掛載的是用於安裝Kubernetes所用到的rpm包的yumrepo定義文件,該文件就在Github項目裡,另外再將容器內的/rpms目錄掛載出來用於後續階段構建新的容器鏡像)。然後開始了一系列的yum下載包的操作,也就是將希望的rpm包都下載到容器內的/rpms目錄,該目錄被掛載出來用於後續階段的鏡像構建。

createrepo命令即我們所熟悉的製作yumrepo倉庫的命令,最後的dockerbuild命令構建鏡像時使用了變量$TRAVIS_BRANCH,也即是Github項目的版本分支,這是因為Travis-CI和我們的Github項目關聯時會將Github項目的Branch作為自己CI項目的Branch。

最後我們將生成的鏡像推送至DockerHub,注意這裡您就應該修正DockerHub賬號名為您自己的用戶名了。例如這裡:

- docker build -t alanpeng/yum-repo:$TRAVIS_BRANCH .

- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD

- docker push alanpeng/yum-repo:$TRAVIS_BRANCH

如果該Github項目為私有項目,那麼您可以直接在這裡把$DOCKER_USERNAME和 $DOCKER_PASSWORD改為您實際的賬號及密碼。如果該Github項目希望是公開被訪問的,那麼您可以將此處保留為變量方式。改變量的具體賦值應當在Travis-CI平臺裡進行定義,這樣您可以公開該Github項目而無需擔心密碼洩露。而Travis-CI平臺裡定義的環境變量是隻有使用您Travis賬號登錄後才能查看的。以這樣的方式既便於源碼項目的公開也便於每個人構建出自己的鏡像版本。

下面我們來看看最核心的步驟,如何登錄Travis-CI平臺並管理我們的Github項目進行自動構建任務。

先使用您的Github賬號登錄Github站點;然後登錄網站 https://www.travis-ci.org 並點擊SigninwithGithub,此時會出現關聯登錄許可,同意即可:

如何利用Travis-CI在線構建yumrepo鏡像

如何利用Travis-CI在線構建yumrepo鏡像

點擊 +號關聯前面所Fork過來的新項目

如何利用Travis-CI在線構建yumrepo鏡像

打開開關,並點擊Settings按鈕:

如何利用Travis-CI在線構建yumrepo鏡像

如何利用Travis-CI在線構建yumrepo鏡像

添加環境變量,用戶名可以勾選在構建日誌中顯示:

如何利用Travis-CI在線構建yumrepo鏡像

密碼當然就別打開這個開關了:

如何利用Travis-CI在線構建yumrepo鏡像

環境變量輸入完畢後是這樣的:

如何利用Travis-CI在線構建yumrepo鏡像

接下來的工作當然需要在DockerHub上創建您自己的一個鏡像項目了:

如何利用Travis-CI在線構建yumrepo鏡像

然後去提交一次項目代碼變更吧,Travis-CI就會自動開啟構建過程了,我們可以在Github項目的branch裡查看Travis構建狀態了(小圓點顏色為綠色表示構建通過,這裡可以直接點擊小圓點跳轉到Travis頁面查看構建日誌細節)

如何利用Travis-CI在線構建yumrepo鏡像

如何利用Travis-CI在線構建yumrepo鏡像

如何利用Travis-CI在線構建yumrepo鏡像

現在我們就可以在任意地方通過docker pull alanpeng/yum-repo:master這樣的方式來下載鏡像了。進一步,如果我們在Github項目裡創建出不同版本分支或Release,這可以得到不同tag的鏡像了。例如 alanpeng/yum-repo:v1.9.8和具體某個k8s版本對應。

關於Wise2C睿雲智合

深圳睿雲智合科技有限公司成立於2012年,總部位於深圳,並分別在成都、深圳設立了研發中心,北京、上海設立了分支機構,核心骨幹人員全部為來自金融、科技行業知名企業資深業務專家、技術專家。早期專注於為中國金融保險等大型企業提供創新技術、電子商務、CRM等領域專業諮詢服務。

自2016年始,在率先將容器技術引進到中國保險行業客戶後,公司組建了專業的容器技術產品研發和實施服務團隊,旨在幫助中國金融行業客戶將容器創新技術應用於企業信息技術支持業務發展的基礎能力改善與提升,成為中國金融保險行業容器技術服務領導品牌。

此外,憑藉多年來在呼叫中心領域的業務經驗與技術積累,睿雲智合率先在業界推出基於開源軟交換平臺FreeSwitch的微服務架構多媒體數字化業務平臺,將語音、視頻、webchat、微信、微博等多種客戶接觸渠道集成,實現客戶統一接入、精準識別、智能路由的CRM策略,並以容器化治理來支持平臺的全應用生命週期管理,顯著提升了數字化業務處理的靈活、高效、彈性、穩定等特性,為幫助傳統企業向“以客戶為中心”的數字化業務轉型提供完美的一站式整體解決方案。

客戶&合作伙伴

如何利用Travis-CI在線構建yumrepo鏡像


分享到:


相關文章: