天天看點

基于docker的持續傳遞系列(一):如何将app與docker整合并部署

        最近docker可以說火得不要不要的,主要是源于docker對環境一緻性的完美解決,極大提升了開發和運維的效率,很好地诠釋了dev-ops的含義。通過以下幾個連結,你可以對docker有更深入的了解:

https://www.docker.com/

https://en.wikipedia.org/wiki/docker_(software)

http://www.infoq.com/cn/dockers/

        本着追随潮流的心态,讓我們也嘗試着去折騰一把!

        本篇主要介紹如何将app代碼與docker進行整合并build為鏡像,最終完成部署、提供服務。

使用的的代碼托管工具為阿裡雲code(code.aliyun.com);

使用的容器hub為阿裡雲開發者平台(dev.aliyun.com);

最終的産品鏡像将部署到阿裡雲容器服務的ecs上(https://cs.console.aliyun.com/#/overview/all)

首先,我們本地clone項目代碼庫(此處需要您的阿裡雲code使用者名和密碼)

$ git clone https://code.aliyun.com/zju_lb/java-with-docker/tree/master

username for 'https://code.aliyun.com': zju_lb

password for 'https://[email protected]':

編譯過後,進行簡單的測試工作:

$ mvn test

根據新完成的dockerfile,本地進鏡像編譯:

$ docker run –p dockermachineip:9999:8080 –it java-with-docker

容器啟動後就可以通路dockermachineip:9999/boot-api,看到我們java web服務的簡單頁面:

基于docker的持續傳遞系列(一):如何将app與docker整合并部署

一切ok,我們将該鏡像push到鏡像倉庫中:

$ sudo docker login [email protected] registry.aliyuncs.com

$ sudo docker tag java-with-docker registry.aliyuncs.com/crp/java-with-docker

$ sudo docker push registry.aliyuncs.com/crp/java-with-docker