把ABP框架部署到Docker中

  本文旨在將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,望技術有成後能回來看見本身的腳步
相關文章
相關標籤/搜索