上面兩種方式做成映象有點大,所以這裡的思路是用golang寫乙個靜態檔案伺服器,做成基礎映象,node專案生成的靜態檔案和它一起打包即可執行起來提供服務
}編譯生成名字叫http的可執行檔案:
# 例子
cmd http -v打包成docker映象
docker build -t http:v1 .
假設埠為9090
第一種:把node環境和專案一起打包(可用於開發測試)
缺點是生成的映象太大了
dockerfile
第二種: 把生成的靜態檔案和golang寫的http服務打包(可用於生產)from node:10.16-alpine
label description="test image"
run yarn install --registry
expose 9090
cmd ["yarn", "start"]
dockerfile
打包和執行from node:10.16-alpine as builder
workdir /build
add . .
# 生成dist目錄,裡面是靜態檔案
expose 9090
訪問image=test:v1
docker build -t $image .
docker run -d --name=test -p 9090:9090 $image
localhost:9090
即可訪問該專案了
結合ci/cd工具drone,可參考這篇文章
關於快取,限速等問題可用nginx**解決
docker部署nodejs專案應用
之前筆者弄了一套nestjs專案放在自己伺服器上,並用pm2管理程序。現在要把pm2停止,嘗試一下用docker容器,那麼首先要安裝docker 由於筆者伺服器的系統是centos7,所以這裡寫的是在centos7上安裝docker 我們可以用以下命令來檢視centos版本 uname r官方源位址...
docker部署nodejs應用
docker三個核心概念如下 映象 images 乙個唯讀的模板,可以理解為應用程式的執行環境,包含了程式執行所依賴的環境和基本配置。相當於上圖中的每個小箱子裡面裝的東西。倉庫 repository 乙個用於存放映象檔案的倉庫。可以看做和gitlab一樣。容器 container 乙個執行應用程式的...
nodejs建立專案
首先,要安裝express和ejs或jade模組。npm install g express npm install g ejs 其次,安裝mysql,stylus,jquery等模組。在開發室,npm應安裝到指定專案資料夾中。這時不要加 g。在指定目錄下安裝,便會安裝到該目錄下。express命令...