選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
2 分鐘閱讀時間 (445 個字)

以 docker 解決網站應用程式複雜的部署問題

以 docker 解決網站應用程式複雜的部署問題

過去我們在部署網站應用程式時,要注意的點真的很多呀:

  • IIS 版本
  • 目錄權限
  • 32 / 64 位元
  • .NET Framework 版本
  • ASP.NET 版本
  • 應用程式集區
  • 實體路徑所在
  • 虛擬目錄或網站名稱
  • 埠號

其實如果是很典型的部署,一切照預設值應該不難。但這次我們來換一個方式思考:假設被部署的機器要求不再是 IIS 而是 Docker 呢?

首先我們在專案目錄完成編譯,我這裡用的是 Visual Studio Code,當然各位可以替換成 Visual Studio 或是從 Jenkins 抓回來都可以(如下圖):

通常最簡單的部署就是把這整個目錄搬到網站主機上,這件事我們要在專案目錄下新建一個名為 Dockerfile 的文字檔來描述,內容如下:

才兩行而已,大意就是「指定 ASP.NET 的版本」(現在大概就 3.5 跟 4.8 兩種可選),還有「複製當前目錄到 Docker 的 C:\inetpub\wwwroot 目錄下」。

接下來就是製作 Docker Image,假設對此命名為 webgoat 好了,指令與結果如下圖:

這時建好的 Docker Image 只能在本機使用,我們先不談發佈到其他 Docker Registry 的做法,也假設未來被發佈的對象,除了預先裝好 Docker 之外,不需安裝其他 IIS ASP.NET 那一堆拉里拉雜的東西,但要能取到這個 Docker Image。在部署時要下類似這樣的指令:

這裡的意思是:為 webgoat 這個 Image 開一個 Container,命名為 webgoat,並且把本機的 80 埠對應到 Docker 的 80 埠。若部署沒問題,用瀏覽器看看 http://localhost 是否大功告成了呢?

[Data Modeling] 以例子來理解 Party Relationship
如何確認需求是否有未釐清的規則呢

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2025/06/10, 週二

Captcha 圖像