使用 Caddy 製作前端 Docker 映象

2021-09-11 17:29:20 字數 1241 閱讀 8898

今年夏天又開始新的創業專案,忙得沒日沒夜,好久沒寫部落格了。

但是也許 docker 越來越火,知乎的專欄每天都有新的人關注,不抽空寫點太對不起大家。

之前寫過 api 映象,今天來說說前端映象。

本文適用於任何乙個需要編譯的前端框架,我們利用 docker 的兩段構建,用乙個 dockerfile 一氣呵成的產出不含原始碼的生產映象。

映象內用了 caddy 當作伺服器,又經過了半年的發展,雖然版本還沒到1,但 caddy 已經足夠強大和健壯了。

為了能讓專案在 caddy 映象中被訪問,我們在專案根目錄建乙個叫 caddyfile 的檔案,供後續映象內啟動服務時使用。

0.0.0.0:80

root /www

gzip

log stdout

errors stdout複製**

解釋一下,我們未來會把編譯好的專案放在容器的 /www 目錄。

伺服器在容器的80埠。啟用gzip,並且將日誌輸出在stdout--這是 docker 的推薦做法。

然後就開始我們的二段構建了:

# build

from node:8 as builder

add. /src

workdir

/src

runnpm i && npm run build

# product

from abiosoft/caddy

copy

--from=builder /src/dist /www

copy

caddyfile /etc/caddyfile

複製**

我們首先使用 node 的官方映象對專案進行編譯,工作目錄為 /src ,編譯結果為 /src/dist 。

然後我們再將 dist 資料夾複製為 caddy 映象的 /www 目錄。

最後我們將我們的 caddyfile 覆蓋映象原版的。

值得一提的是,我們使用的 abiosoft/caddy 這個映象並非官方版本,但是比較活躍,感興趣也可以去看原始碼。

如果一台物理機只準備使用這乙個映象,那麼我們之前的 caddyfile 不應該限定80埠,並且應該指定網域名稱,以此來使用 caddy 的自動 https 特性。

做了如此修改後將映象啟動時繫結80和443埠就好。

但是大部分時候,我們只是讓映象的80埠對映在主機的某個埠,主機上還有一層 web 伺服器。就不再羅嗦這裡應該怎麼配置了。

Dock對話方塊的製作

step1 建立乙個對話方塊資源 step2 設定對話方塊的屬性 style child border none step3 建立該資源對應的類,基類為cdialogbar step4 在主框架中宣告該對話方塊中的乙個例項 step5 if dockdlg1.create this,idd dial...

dock基本使用

要安裝最新的 docker 版本,首先需要安裝 apt transport https 支援,之後通過新增源來安裝。要安裝最新的 docker 版本,首先需要安裝 apt transport https 支援,之後通過新增源來安裝。sudo docker images 顯示本地已有的映象 sudo ...

Dock的使用記錄

企業應用架構模式 企業批量購書 分享 關注商品舉報 程式設計師 技術討論會 的各種ppt systemctl stop firewalld.service 停止firewall systemctl disable firewalld.service 禁止firewall開機啟動 sudo apt g...