将strapi打包成docker镜像

Docker 是一个以容器虚拟化为基础的软件,他能够把项目,依赖,库以及一切你想要的东西,整合到一个容器里,以便在任何环境中运行。

Strapi 是一个开源的CMS框架,能够通过可视化配置的形式构建我们想要的数据存储结构,以及对应的增删改查的接口。但是实际使用过程中,老是会遇到安装问题,可能是依赖安不上,可能是文件名有空格等。

例如:

将strapi打包成docker镜像

在这个指南中,我们将学习如何将 Strapi 应用程序打包成 Docker 镜像。解决多环境部署问题。文末也会提供打包好的镜像地址,让同学们能够直接使用。

步骤

1. 安装 Docker

首先,确保您的系统上已经安装了 Docker。您可以从 Docker 官方网站下载并按照说明进行安装:docs.docker.com/get-docker/

打包也需要用到这个软件,安装成功后就能看到

将strapi打包成docker镜像

2. 准备 Strapi 项目

strapi的官网:

strapi.io/

使用下面的命令创建一个strapi的项目:

npx create-strapi-app@latest strapi-demo

有可能会提示你的node版本过低,他需要node版本大于18

将strapi打包成docker镜像

项目创建完成会起一个1337端口的服务,就可以访问了

没有的话您可以进入项目根目录,使用以下命令启动 Strapi 服务:

npm install
npm run develop

3. 创建 Dockerfile

在 Strapi 项目的根目录下创建一个名为 Dockerfile 的文件,内容如下:

# 使用 Node.js 官方镜像作为基础镜像
FROM node:18

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 到工作目录
COPY package*.json ./

# 设置NPM镜像源
RUN npm config set registry https://registry.npmmirror.com

# 安装项目依赖
RUN npm install --cache /tmp/empty-cache;

# 复制项目文件到工作目录
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 端口(默认是 1337))
EXPOSE 1337

# 启动 Strapi 服务
CMD ["npm","run","develop"

4. 构建 Docker 镜像

注意:打包的时候一定要保证docker desktop这个软件的运行

在 Strapi 项目的根目录下,打开终端并执行以下命令构建 Docker 镜像:

docker build -t my-strapi-app . --load

请注意,. 表示当前目录,my-strapi-app 是您为镜像指定的名称。

–load 表示加载到你本地的docker 上

如果你要推送到docker hub仓库里(类似于github ,只不过docker hub上都是镜像),用 –push

docker build -t 你的dockerhub名称/my-strapi-app:latest . --push

如果你打包用的机器架构和你要部署的机器架构不一样,你可以用–platform这个参数指定要打包的架构的镜像包(一样的话不用看)

当然在使用之前要先安装buildx

docker buildx install  //安装buildX
docker buildx create --name mybuilder  //创建了一个名为“mybuilder”的Buildx Builder
docker buildx use mybuilder //使用创建的Builder
//打包生成指定架构镜像
docker buildx build --platform linux/amd64,linux/arm64 -t my-strapi-app .

打包耗时会比较长

将strapi打包成docker镜像

打包完成后,如果你是加载到本地docker的,你就能在docker 这个软件的Images里看到你打包好的镜像

不要直接点击镜像后面的运行按钮去跑,这样他不会把容器暴露的1337端口和你本地去映射,你访问不到!

将strapi打包成docker镜像

5. 运行 Docker 容器

使用以下命令在 Docker 容器中运行 Strapi 服务:

docker run -p 1337:1337 my-strapi-app

这会将容器的 1337 端口映射到主机的 1337 端口上。您可以根据需要调整端口映射。

现在,您的 Strapi 应用程序已经打包成 Docker 镜像,并在容器中运行。

这只是一个简单的指南,根据您的具体项目需求,您可能需要调整 Dockerfile 中的一些配置。确保您的 Strapi 项目已经配置了正确的数据库连接等信息,并且在 Docker 环境中也能正常运行。

6.strapi镜像

本文打包的strapi镜像可直接使用:

在控制台输入:

docker pull webfamer/my-strapi-app:latest

就能在列表看到

将strapi打包成docker镜像

然后运行下列命令:

docker run -p 1337:1337 my-strapi-app

访问localhost:1337,就能愉快的使用strapi了

不要直接点击镜像后面的运行按钮去跑,这样他不会把容器暴露的1337端口和你本地去映射,你访问不到!

原文链接:https://juejin.cn/post/7321596167584825380 作者:Micha

(0)
上一篇 2024年1月9日 上午10:52
下一篇 2024年1月9日 上午11:03

相关推荐

发表回复

登录后才能评论