把ABP框架部署到Docker中


  本文旨在將Abp項目部署到Docker容器中,借助Gitee存儲,Jenkins持續構建,利用Docker Compose生成鏡像、啟動鏡像,在官網給定的Abp項目中,雖然用到了Dockerfile、Docker Compose,但是沒有資料指明該如何使用這兩個文件,借此我通過改造這兩個文件來完成Abp部署任務。

 

一、前期准備工作

  1、把從Abp官網下載下來的項目(我這取名為Surround方便講解)修改成以下項目路徑結構:

  

  其中的docker文件夾中加入Docker Compose項目,點擊具體項目(如ABP中的Web.Mvc)右鍵添加菜單中的容器業務流程協助程序支持,將出現一個docker compose項目,對於整個docker compose項目的路徑按照約定設計。

  

  2、處理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。

version: '3.4'

services:
  surroundhost:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"
  surroundmvc:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"

  3、選中Surround.Web.Mvc點擊右鍵選中添加,加入新的dockerfile文件,不再使用已有的dockerfile文件,同時建議修改dockerfile中的指定端口為80端口,這樣就促成了約定所有的新項目加入進來容器內部都使用80端口,如有需要另改即可,同樣對Surround.Web.Host也執行這樣的操作。 

  

  4、需要注釋Surround.Web.Host中的該部分配置:

  

  該部分配置用於Swagger文檔的根目錄位置,但是如果不注釋掉Web.Host中的ServerRootAddress將會引起,由於外部端口與此處指定的端口不一致導致。

  

  5、在Jenkins中新建項目並編寫腳本

  如需查看Jenkins的安裝過程可以查看https://www.cnblogs.com/CKExp/p/9536864.html,這里不再陳述,

  在另一篇https://www.cnblogs.com/CKExp/p/9940479.html,講解了Surround在Jenkins中新建項目的過程,可以直接使用。

  本次執行完畢,之后有新代碼提交,將會自動構建,如果需要指定對外端口,可以在docker-compose.override.yaml文檔中指定外部端口,如果不指定,則每次生成后都是使用的隨機端口,

 

二、部署完畢查看效果

  構建完畢可以通過腳本查看docker ps -a,查看容器已經生成並已經處於運行中了。

  

  通過服務器地址:外部端口的形式可以直接訪問查看。

  

  

   至此,abp部署在docker中算是完成了,主要是修改了原有abp項目中的docker compose文件和dockerfile文件。

 

  本文地址: https://www.cnblogs.com/CKExp/p/9765907.html 

  歡迎關注微信訂閱號,有新的文章將同步到訂閱號中

  

2018-11-11,望技術有成后能回來看見自己的腳步

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM