
!https://github.com/V-Shadbolt/Docker-strapi/blob/main/assets/PNG.logo.purple.dark.png?raw=true
Strapi v4 和 v5(最新版本)的Docker镜像
API创建变得简单、安全且快速。最先进的开源内容管理框架,无需费力即可构建强大的API。
https://github.com/V-Shadbolt/Docker-strapi
https://hub.docker.com/r/vshadbolt/strapi
该镜像允许您在Docker中创建新的Strapi项目或运行现有Strapi项目。
无论是新项目还是现有项目,修改NODE_ENV环境变量将决定项目的启动方式。
NODE_ENV=development:项目将以开发模式运行,执行命令strapi develop。
NODE_ENV=production:项目将以生产模式运行,执行命令strapi start。
当
NODE_ENV=production时,内容类型构建器插件将被禁用。
运行此镜像时,Strapi会检查容器的/srv/app目录中是否存在项目。如果不存在现有项目,它将在容器的/srv/app目录中运行create strapi-app命令。
该命令默认创建使用SQLite数据库的项目,然后在端口1337上启动Strapi。
不过,此镜像会覆盖未配置的config/admin.js、config/server.js和config/middlewares.js文件,以便通过Docker环境变量设置镜像源、CORS参数、管理界面URL和公共服务器URL。以下是配置示例:
ADMIN_URL: tobemodified:为管理页面设置自定义子域名/域名。例如:https://api.example.com/admin。若不设置,配置默认值为http://localhost:1337/admin。
PUBLIC_URL: tobemodified:为API端点设置自定义域名。例如:https://api.example.com。若不设置环境变量,配置默认值为http://localhost:1337。
IMG_ORIGIN: "toBeModified1,toBeModified2":为项目添加新的镜像源。例如:'self',data:,blob:,market-assets.strapi.io,api.example.com。若不设置环境变量,配置默认值为'self',data:,blob:,market-assets.strapi.io。
CORS_ORIGIN: "toBeModified1,toBeModified2":为项目添加新的CORS源。例如:https://myfrontendwebsite.example.com,https://api.example.com。若不设置环境变量,配置默认值为*。
如果Docker主机是远程的,
ADMIN_URL和PUBLIC_URL的默认值会抛出错误。对于远程项目,至少需要设置Docker主机IP。例如:http://192.168.1.1:1337。理想情况下使用nginx代理设置或子域名/域名。如果主机不是远程的,http://localhost:1337可正常工作。
支持配置多种数据库类型:
DATABASE_CLIENT: tobemodified:Strapi支持的数据库提供程序(sqlite、postgres、mysql、mongo)。例如:postgres。
DATABASE_HOST: database host IP / container name:数据库主机IP或容器名称。例如:strapiDB。
DATABASE_PORT: database host port / container port:数据库主机端口或容器端口。例如:5432。
DATABASE_NAME: tobemodified:数据库名称。例如:strapi。
DATABASE_USERNAME: tobemodified:数据库用户名。例如:strapi。
DATABASE_PASSWORD: tobemodified:数据库密码。例如:strapi。
DATABASE_SSL: tobemodified:SSL布尔值。例如:false。
需设置随机字符串作为安全密钥:
JWT_SECRET: tobemodified:随机字符串。例如:JrWfVf/o9TbWQmpMgsJaYp==。
ADMIN_JWT_SECRET: tobemodified:随机字符串。例如:MCpf2/FMiCJthF5d6Qup6iG==。
APP_KEYS: toBeModified1,toBeModified2:多个随机字符串。例如:w9/ZTuHUWNF2EP8gdfPcNn==,LqXKC52TsN/z/Y2rUGTa6m==,d7EKo2Tp9SiGf82ZqrmSnB==,TAu2SJx6BDc7aYUyqiwxKs==。
API_TOKEN_SALT: tobemodified:随机字符串。例如:j43/kBRfXULfPpJnzPCJzi==。
TRANSFER_TOKEN_SALT: tobemodified:随机字符串。例如:GCX3NkRSyHrDxhfgwnmCm3==。
修改配置后需重新构建项目:
BUILD: tobemodified:重新构建Strapi项目的布尔值。例如:true。不添加此参数将使
/config目录中的任何更改无效,直到添加为止。对于URL更改尤其重要。
在开发模式(NODE_ENV=development)下将Strapi运行在反向代理(如Caddy、Nginx或Traefik)后面时,可能会遇到以下错误:
Blocked request. This host ("api.example.com") is not allowed. To allow this host, add "api.example.com" to `server.allowedHosts` in vite.config.js.
可通过以下变量解决:
ENABLE_VITE_ALLOWED_HOSTS: tobemodified:启用Vite允许主机修复的布尔值。例如:true。设置为true时,将自动创建vite.config.js(JavaScript项目)或vite.config.ts(TypeScript项目)文件,允许所有主机。
完整示例https://github.com/V-Shadbolt/docker-strapi/blob/main/./examples/strapi-postgres/docker-compose.yml%E5%8F%8A%E6%9B%B4%E5%A4%9A%E7%A4%BA%E4%BE%8B%E8%A7%81https://github.com/V-Shadbolt/docker-strapi/tree/main/examples%E3%80%82
要运行不是使用此镜像创建的现有项目,需将项目文件夹挂载到容器的/srv/app目录。需直接修改项目配置文件,确保数据库可访问,并谨慎备份。
对于现有项目,
config/admin.js、config/server.js和config/middlewares.js文件需配置为不使用http://localhost:1337(除非主机是本地的)。
对于使用此镜像创建的现有项目,迁移时可挂载项目文件夹并利用上述环境变量修改配置。
停止容器,拉取指定版本镜像(:4.x.x或:latest-v4),重新创建容器。
升级过程缓慢,跨次要和补丁版本,可能存在破坏性变更,需备份。
⚠️ 谨慎操作。停止容器,拉取latest或:5.x.x标签镜像,重新创建容器。需参考官方升级指南,确保备份。
停止容器,拉取指定版本镜像(:5.x.x或:latest),重新创建容器。
⚠️ Strapi v5使用升级工具,可能存在依赖冲突,需备份。
镜像已修改入口点,使用npx create strapi-app获取所需包,并为现有项目自动安装react、react-dom、react-router-dom、styled-components。
入口点已修改,跳过新Strapi项目的Strapi Cloud设置。
pg模块。mysql模块。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务