將Jexus+mono和網站一起通過Dockerfile打包到docker鏡像

来源:https://www.cnblogs.com/Ricklee/archive/2019/08/19/11374747.html
-Advertisement-
Play Games

上次使用別人打包好的docker鏡像,往裡邊加入文件,最終asp.net的docker容器化運行。 這次決定直接全新打包一個jexus+asp.net網站的docker包。 進入root目錄,併在root目錄下建立一個名稱為docker的目錄作為我們這次打包項目的基礎目錄。 首先準備.Net運行環境 ...


上次使用別人打包好的docker鏡像,往裡邊加入文件,最終asp.net的docker容器化運行。

這次決定直接全新打包一個jexus+asp.net網站的docker包。

 進入root目錄,併在root目錄下建立一個名稱為docker的目錄作為我們這次打包項目的基礎目錄。

#cd /root
#mkdir docker
#cd docker

首先準備.Net運行環境,下載jexus,下載jexus 5.8.3的專業版,該版本已經包含了Linux下的.Net運行時Mono,不需要再額外安裝配置Mono,比較省事。

wget https://www.linuxdot.net/down/jexus-5.8.3-x64.tar.gz

然後準備網站目錄,wwwroot,將網站目錄cp到當前目錄下。

jexus的配置文件位於jexus/siteconf目錄下名為default。

網站的根目錄預設為/var/www/default,我們這裡把網站的根目錄設置成/var/www/wwwroot,因此需要對配置文件進行修改。

其他的個性化配置的修改如:URL重寫rewrite=/News/([(a-f)|(A-F)|(0-9)]{12})\.aspx /News/News.aspx?type=0&id=$1等等

,多個URL重寫就使用多個rewrite即可,每行一個。

運行環境,配置文件,網站目錄都在了,剩下的就是重頭戲,Dockerfile文件的編寫。

編寫完成的代碼如下:

#base image
FROM centos

# MAINTAINER
MAINTAINER li.chao@163.com

# put jexus-5.8.3-x64.tar.gz into /usr and unpack jexus
ADD jexus-5.8.3-x64.tar.gz /usr/

# overwrite jexus config file  into /usr/jexus/siteconf/
COPY default /usr/jexus/siteconf/

# put webroot
COPY webroot /var/www/webroot

# running required command install required fonts
RUN yum install -y dejavu-fonts-common dejavu-lgc-sans-mono-fonts

# change dir to /usr/jexus
WORKDIR /usr/jexus

EXPOSE 80

該鏡像以centos官方鏡像為基礎鏡像。依次執行瞭如下操作。

# 將jexus包解壓縮至容器的/usr/目錄下
ADD jexus-5.8.3-x64.tar.gz /usr/

# 覆蓋jexus的配置文件/usr/jexus/siteconf/default,
COPY default /usr/jexus/siteconf/

# 複製網站根目錄到鏡像
COPY webroot /var/www/webroot

# 運行安裝依賴包的操作,這裡安裝的是字體,沒有此字體將導致驗證碼顯示錯誤。
RUN yum install -y dejavu-fonts-common dejavu-lgc-sans-mono-fonts

# 將工作目錄設置為/usr/jexus
WORKDIR /usr/jexus

#輸出埠設置為80 EXPOSE 80

該過程其實可以進一步縮減,如事先將jexus解壓,並修改好配置文件,這樣就可以將ADD取消,用COPY代替,並且可以省略掉單獨複製配置文件的過程,甚至將jexus和webroot放入同一個目錄,只需要複製一次即可
在這裡,為了讓過程清晰,文件易讀,分開東哥步驟完成。
文件保存後,docker目錄下的文件如下

ll

 然後運行打包程式

#docker build -t centos_jexus:v1 .

註意最後有個點,別丟了。運行後

打包完成:

運行該鏡像

 

成功!網站訪問一切正常!

(後記:由於該伺服器需要對多個網站提供服務,因此不能允許某個網站獨占80埠,因此在伺服器上安裝了Nginx,然後使用虛擬主機配置文件,將不同網站按照功能變數名稱分別重定向到本地不同的埠,最終實現了多個虛擬主機。且各個虛擬主機可以分I別運行與不同的Docker上)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、要在一般處理程式中獲取其他頁面的session值,需要引用名空間: using System.Web.SessionState; 2、然後繼承一個介面:IRequiresSessionState IRequiresSessionState 使用: context.Session["key"]; ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 一、什麼是MVC? MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程式的模式。 MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫, 一種軟體設計典範 ...
  • 前言 功能:調用web api 介面 1.獲取 jpeg 格式的二維碼 2.獲取中間帶有logo 的二維碼 3. 下載 jpeg,svg 格式的二維碼 需要的NuGet 包: > QRCoder(v1.3.6) > System.Drawing.Common(v4.5.1) 正文 1. 準備項目 創 ...
  • 優點: 1.跨平臺,高性能,開源,運行在.Net Core 或.Net Framework框架上(asp.net core 3.0及以後只支持.Net Core)。 2.各平臺上開發工具支持,能夠開發web應用,webapi,移動端後臺,IoT應用等多種應用程式,功能強大。 3.強大的開發測試功能, ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...