Docker 發布 Abp net core web 服務


 

 

 

Docker 發布 Abp net core web 服務

  1. 准備工作:Abp 項目,這個是模板下載地址 https://aspnetboilerplate.com/Templates (本例使用的是Single Page Web Application)

  2. 安裝docker :參考:http://www.runoob.com/docker/windows-docker-install.html

    1.   安裝成功后注冊docker 賬號 
  3. 創建數據庫容器參考:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash
    1. 執行命令: docker pull mcr.microsoft.com/mssql/server:2017-latest  拉取映像

    2. 執行命令創建映像容器:docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<填寫一個賬號密碼'> -p <本機端口>:<服務器端口> --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest           
    3. 注意:<> 括號內是你要替換的內容, - p 后面兩個端口的作用是將容器內的端口映射到本地端口,例如:映像中的mssql 的端口是1433,映射到本地的8099 就是:-p 6900:1433
    4. 測試一下,用 vs 連接docker 上的mssql 
  4. 對容器內的數據庫經行數據庫遷移
    1. 更改Abp 項目 AbpCompanyName.AbpProjectName.Migrator 下的appsetting.json 中的連接字符串為,你創建容器的連接  "Data Source=<本機ip>,<docker 映射的端口>;Initial Catalog=<你創建的數據庫>;User ID=sa;Password=<你的數據庫密碼>"
    2. 替換數據庫連接后運行程序經行遷移
  5. 發布web 
    1. 在host 項目下創建 Dockerfile  注意將 AbpCompanyName.AbpProjectName.Web.Host.dll 替換成你啟動的程序集名稱.dll
      FROM microsoft/dotnet:latest
      
      COPY . /app
      
      WORKDIR /app
      
      EXPOSE 80/tcp
      
      ENTRYPOINT ["dotnet", "AbpCompanyName.AbpProjectName.Web.Host.dll"]
    2. 設置 Dockerfile 生成方式
    3. 發布代碼 
    4. 構建映像 ,在發布目錄下運行命令: docker build -t 映像名稱  .     這里注意結尾不要漏了空格跟“.“
    5. 創建並運行容器
    6. 執行命令: docker run -it -p <本地端口>:<容器端口> <映像名稱>

      執行后可以看出,程序默認綁定容器的80端口,因此我們需要在本地上訪問容器內的web,我們必須設置映像端口為80(根據實際情況綁定端口)

      本例子中上面創建了myabp/demo容器,且程序運行的端口為80,因此我想在本機上8078端口訪問服務命令就是: docker run -it -p 8078:80 myabp/demo

    7. 瀏覽網址:http://localhost:8078/swagger/index.html 結果如下 ,powerShell 可以直接關掉,服務會繼續掛在docker 上面
    8. 用vscode 打開vue 項目修改  vue/src/lib/url.ts  修改url 為我們docker 上發布的服務地址
    9.  命令終端在 vue 目錄下運行 npm run serve

      點開瀏覽地址可以看到前端已經請求docker 上的服務地址,默認賬號 admin 密碼123qwe

    10. 如果有需要的同學可以允許npm rum build  打包前端代碼再發布到docker 或者IIS上面都可以,

    如果前端訪問失敗,有可能是服務上沒有添加跨域配置哦~

 

               

 

 

 

         


免責聲明!

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



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