将strapi打包成docker镜像的步骤详解
作者:Micha
Docker 是一个以容器虚拟化为基础的软件,他能够把项目,依赖,库以及一切你想要的东西,整合到一个容器里,以便在任何环境中运行。
Strapi 是一个开源的CMS框架,能够通过可视化配置的形式构建我们想要的数据存储结构,以及对应的增删改查的接口。但是实际使用过程中,老是会遇到安装问题,可能是依赖安不上,可能是文件名有空格等。
例如:
在这个指南中,我们将学习如何将 Strapi 应用程序打包成 Docker 镜像。解决多环境部署问题。文末也会提供打包好的镜像地址,让同学们能够直接使用。
步骤
1. 安装 Docker
首先,确保您的系统上已经安装了 Docker。您可以从 Docker 官方网站下载并按照说明进行安装:docs.docker.com/get-docker/
打包也需要用到这个软件,安装成功后就能看到
2. 准备 Strapi 项目
strapi的官网:
使用下面的命令创建一个strapi的项目:
npx create-strapi-app@latest strapi-demo
有可能会提示你的node版本过低,他需要node版本大于18
项目创建完成会起一个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 .
打包耗时会比较长
打包完成后,如果你是加载到本地docker的,你就能在docker 这个软件的Images里看到你打包好的镜像
不要直接点击镜像后面的运行按钮去跑,这样他不会把容器暴露的1337端口和你本地去映射,你访问不到!
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
就能在列表看到
然后运行下列命令:
docker run -p 1337:1337 my-strapi-app
访问localhost:1337,就能愉快的使用strapi了
不要直接点击镜像后面的运行按钮去跑,这样他不会把容器暴露的1337端口和你本地去映射,你访问不到!
以上就是将strapi打包成docker镜像的步骤详解的详细内容,更多关于strapi打包成docker镜像的资料请关注脚本之家其它相关文章!