本文旨在將Abp項目部署到Docker容器中,藉助Gitee存儲,Jenkins持續構建,利用Docker Compose生成鏡像、啓動鏡像,在官網給定的Abp項目中,雖然用到了Dockerfile、Docker Compose,可是沒有資料指明該如何使用這兩個文件,藉此我經過改造這兩個文件來完成Abp部署任務。html
1、前期準備工做java
一、把從Abp官網下載下來的項目(我這取名爲Surround方便講解)修改爲如下項目路徑結構:docker
其中的docker文件夾中加入Docker Compose項目,點擊具體項目(如ABP中的Web.Mvc)右鍵添加菜單中的容器業務流程協助程序支持,將出現一個docker compose項目,對於整個docker compose項目的路徑按照約定設計。服務器
二、處理docker compose中的腳本配置,在docker-compose.yaml中指定兩個服務相關信息,鏡像名稱、dockerfile的路徑地址,此處在build中指定context爲本目錄的上級目錄,按照上圖中的位置就是在/xxx項目這一級,而後指定dockerfile的路徑爲src/Surround.Web.Host/Dockerfile指明具體的Dockerfle路徑,一樣對於surroundmvc一樣如此處理。微信
version: '3.4'
services:
surroundhost:
image: ${DOCKER_REGISTRY}surroundhost
build:
context: ../
dockerfile: src/Surround.Web.Host/Dockerfile
surroundmvc:
image: ${DOCKER_REGISTRY}surroundmvc
build:
context: ../
dockerfile: src/Surround.Web.Mvc/Dockerfile
對於docker-compose.override.yaml文件,這是對前一個文件的補充,docker compose會將兩個文件進行合併,在此文件中指定環境變量和對外端口此處docker compose設置的端口優先級高於dockerfile設置的端口,此處設置後dockerfile的端口則失效,此處設置內部端口爲80端口,外部端口隨機獲取一個,若是想固定端口,則能夠寫 - "32100:80" 那麼外部端口便固定爲32100。mvc
version: '3.4' services: surroundhost: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "80" surroundmvc: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "80"
三、選中Surround.Web.Mvc點擊右鍵選中添加,加入新的dockerfile文件,再也不使用已有的dockerfile文件,同時建議修改dockerfile中的指定端口爲80端口,這樣就促成了約定全部的新項目加入進來容器內部都使用80端口,若有須要另改便可,一樣對Surround.Web.Host也執行這樣的操做。 框架
四、須要註釋Surround.Web.Host中的該部分配置:ide
該部分配置用於Swagger文檔的根目錄位置,可是若是不註釋掉Web.Host中的ServerRootAddress將會引發,因爲外部端口與此處指定的端口不一致致使。ui
五、在Jenkins中新建項目並編寫腳本spa
如需查看Jenkins的安裝過程能夠查看http://www.javashuo.com/article/p-ernpowah-y.html,這裏再也不陳述,
在另外一篇http://www.javashuo.com/article/p-kkioerms-eq.html,講解了Surround在Jenkins中新建項目的過程,能夠直接使用。
本次執行完畢,以後有新代碼提交,將會自動構建,若是須要指定對外端口,能夠在docker-compose.override.yaml文檔中指定外部端口,若是不指定,則每次生成後都是使用的隨機端口,
2、部署完畢查看效果
構建完畢能夠經過腳本查看docker ps -a,查看容器已經生成並已經處於運行中了。
經過服務器地址:外部端口的形式能夠直接訪問查看。
至此,abp部署在docker中算是完成了,主要是修改了原有abp項目中的docker compose文件和dockerfile文件。
本文地址: http://www.javashuo.com/article/p-gunjbgao-cp.html
歡迎關注微信訂閱號,有新的文章將同步到訂閱號中
2018-11-11,望技術有成後能回來看見本身的腳步