將strapi打包成docker鏡像的步驟詳解
Docker 是一個(gè)以容器虛擬化為基礎(chǔ)的軟件,他能夠把項(xiàng)目,依賴,庫以及一切你想要的東西,整合到一個(gè)容器里,以便在任何環(huán)境中運(yùn)行。
Strapi 是一個(gè)開源的CMS框架,能夠通過可視化配置的形式構(gòu)建我們想要的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),以及對(duì)應(yīng)的增刪改查的接口。但是實(shí)際使用過程中,老是會(huì)遇到安裝問題,可能是依賴安不上,可能是文件名有空格等。
例如:
在這個(gè)指南中,我們將學(xué)習(xí)如何將 Strapi 應(yīng)用程序打包成 Docker 鏡像。解決多環(huán)境部署問題。文末也會(huì)提供打包好的鏡像地址,讓同學(xué)們能夠直接使用。
步驟
1. 安裝 Docker
首先,確保您的系統(tǒng)上已經(jīng)安裝了 Docker。您可以從 Docker 官方網(wǎng)站下載并按照說明進(jìn)行安裝:docs.docker.com/get-docker/
打包也需要用到這個(gè)軟件,安裝成功后就能看到
2. 準(zhǔn)備 Strapi 項(xiàng)目
strapi的官網(wǎng):
使用下面的命令創(chuàng)建一個(gè)strapi的項(xiàng)目:
npx create-strapi-app@latest strapi-demo
有可能會(huì)提示你的node版本過低,他需要node版本大于18
項(xiàng)目創(chuàng)建完成會(huì)起一個(gè)1337端口的服務(wù),就可以訪問了
沒有的話您可以進(jìn)入項(xiàng)目根目錄,使用以下命令啟動(dòng) Strapi 服務(wù):
npm install npm run develop
3. 創(chuàng)建 Dockerfile
在 Strapi 項(xiàng)目的根目錄下創(chuàng)建一個(gè)名為 Dockerfile 的文件,內(nèi)容如下:
# 使用 Node.js 官方鏡像作為基礎(chǔ)鏡像 FROM node:18 # 設(shè)置工作目錄 WORKDIR /app # 復(fù)制 package.json 和 package-lock.json 到工作目錄 COPY package*.json ./ # 設(shè)置NPM鏡像源 RUN npm config set registry https://registry.npmmirror.com # 安裝項(xiàng)目依賴 RUN npm install --cache /tmp/empty-cache; # 復(fù)制項(xiàng)目文件到工作目錄 COPY favicon.png ./favicon.png COPY src/ src/ COPY public/ public/ COPY database/ database/ COPY config/ config/ COPY .env .env # 打包strapi RUN npm run build # 暴露 Strapi 端口(默認(rèn)是 1337)) EXPOSE 1337 # 啟動(dòng) Strapi 服務(wù) CMD ["npm","run","develop"
4. 構(gòu)建 Docker 鏡像
注意:打包的時(shí)候一定要保證docker desktop這個(gè)軟件的運(yùn)行
在 Strapi 項(xiàng)目的根目錄下,打開終端并執(zhí)行以下命令構(gòu)建 Docker 鏡像:
docker build -t my-strapi-app . --load
請(qǐng)注意,. 表示當(dāng)前目錄,my-strapi-app 是您為鏡像指定的名稱。
--load 表示加載到你本地的docker 上
如果你要推送到docker hub倉庫里(類似于github ,只不過docker hub上都是鏡像),用 --push
docker build -t 你的dockerhub名稱/my-strapi-app:latest . --push
如果你打包用的機(jī)器架構(gòu)和你要部署的機(jī)器架構(gòu)不一樣,你可以用--platform這個(gè)參數(shù)指定要打包的架構(gòu)的鏡像包(一樣的話不用看)
當(dāng)然在使用之前要先安裝buildx
docker buildx install //安裝buildX docker buildx create --name mybuilder //創(chuàng)建了一個(gè)名為“mybuilder”的Buildx Builder docker buildx use mybuilder //使用創(chuàng)建的Builder //打包生成指定架構(gòu)鏡像 docker buildx build --platform linux/amd64,linux/arm64 -t my-strapi-app .
打包耗時(shí)會(huì)比較長
打包完成后,如果你是加載到本地docker的,你就能在docker 這個(gè)軟件的Images里看到你打包好的鏡像
不要直接點(diǎn)擊鏡像后面的運(yùn)行按鈕去跑,這樣他不會(huì)把容器暴露的1337端口和你本地去映射,你訪問不到!
5. 運(yùn)行 Docker 容器
使用以下命令在 Docker 容器中運(yùn)行 Strapi 服務(wù):
docker run -p 1337:1337 my-strapi-app
這會(huì)將容器的 1337 端口映射到主機(jī)的 1337 端口上。您可以根據(jù)需要調(diào)整端口映射。
現(xiàn)在,您的 Strapi 應(yīng)用程序已經(jīng)打包成 Docker 鏡像,并在容器中運(yùn)行。
這只是一個(gè)簡單的指南,根據(jù)您的具體項(xiàng)目需求,您可能需要調(diào)整 Dockerfile 中的一些配置。確保您的 Strapi 項(xiàng)目已經(jīng)配置了正確的數(shù)據(jù)庫連接等信息,并且在 Docker 環(huán)境中也能正常運(yùn)行。
6.strapi鏡像
本文打包的strapi鏡像可直接使用:
在控制臺(tái)輸入:
docker pull webfamer/my-strapi-app:latest
就能在列表看到
然后運(yùn)行下列命令:
docker run -p 1337:1337 my-strapi-app
訪問localhost:1337,就能愉快的使用strapi了
不要直接點(diǎn)擊鏡像后面的運(yùn)行按鈕去跑,這樣他不會(huì)把容器暴露的1337端口和你本地去映射,你訪問不到!
以上就是將strapi打包成docker鏡像的步驟詳解的詳細(xì)內(nèi)容,更多關(guān)于strapi打包成docker鏡像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
輕松安裝docker并運(yùn)行docker swarm模式
這篇文章主要介紹了安裝docker并運(yùn)行docker swarm模式的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友一起學(xué)習(xí)吧2016-12-12docker使用Dockerfile構(gòu)建鏡像的方法
這篇文章主要介紹了docker使用Dockerfile構(gòu)建鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12Docker項(xiàng)目部署之從后端到前端部署詳細(xì)流程
在當(dāng)今的軟件開發(fā)領(lǐng)域,容器化技術(shù)已經(jīng)成為了部署和管理應(yīng)用程序的重要手段,下面這篇文章主要給大家介紹了關(guān)于Docker項(xiàng)目部署之從后端到前端部署的相關(guān)資料,需要的朋友可以參考下2024-08-08docker 打包本地鏡像,并到其他機(jī)器進(jìn)行恢復(fù)操作
這篇文章主要介紹了docker 打包本地鏡像,并到其他機(jī)器進(jìn)行恢復(fù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11docker?部署?時(shí)序數(shù)據(jù)庫TDengine的思路詳解
TDengineGUI是一個(gè)基于electron構(gòu)建的,針對(duì)時(shí)序數(shù)據(jù)庫TDengine的圖形化管理工具,這篇文章主要介紹了docker?部署?時(shí)序數(shù)據(jù)庫TDengine的思路詳解,需要的朋友可以參考下2025-04-04