本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Strapi 是一款开源、完全可定制且可扩展的JavaScript无头内容管理系统(Headless CMS)。本镜像由Elestio验证和打包,旨在提供稳定、高效的Strapi部署方案,适用于快速开发和管理JavaScript API的场景。通过Elestio镜像,用户可轻松部署功能完备的Strapi实例,满足内容管理、API开发等需求。
以下是使用Docker Compose部署Strapi的示例配置,包含Strapi应用和PostgreSQL数据库服务。
version: "3" services: strapi: image: elestio/strapi-${NODE_ENV}:latest restart: always env_file: .env environment: DATABASE_CLIENT: ${DATABASE_CLIENT} DATABASE_HOST: db DATABASE_PORT: ${DATABASE_PORT} DATABASE_NAME: ${DATABASE_NAME} DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_PASSWORD: ${DATABASE_PASSWORD} JWT_SECRET: ${JWT_SECRET} ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET} APP_KEYS: ${APP_KEYS} NODE_ENV: ${NODE_ENV} volumes: - ./config:/opt/app/config # 配置文件挂载 - ./src:/opt/app/src # 源代码挂载(开发模式) - ./.env:/opt/app/.env # 环境变量文件挂载 - ./public/uploads:/opt/app/public/uploads # 上传文件存储挂载 - ./entrypoint.sh:/opt/app/entrypoint.sh # 自定义入口脚本(可选) ports: - "172.17.0.1:9930:1337" # 端口映射(主机:容器) depends_on: - db # 依赖PostgreSQL服务 db: image: elestio/postgres:latest # Elestio优化的PostgreSQL镜像 restart: always environment: POSTGRES_DB: ${DATABASE_NAME} # 数据库名称 POSTGRES_USER: ${DATABASE_USERNAME} # 数据库用户 POSTGRES_PASSWORD: ${DATABASE_PASSWORD} # 数据库密码 PGDATA: /var/lib/postgresql/data # 数据存储路径 volumes: - ./pgdata:/var/lib/postgresql/data # 数据库数据持久化 ports: - "172.17.0.1:24538:5432" # PostgreSQL端口映射
创建.env文件,配置以下环境变量(参考示例值):
| 变量名 | 示例值 | 说明 |
|---|---|---|
| ADMIN_PASSWORD | your-password | Strapi管理员登录密码 |
| ADMIN_EMAIL | *** | Strapi管理员邮箱 |
| BASE_URL | [***] | 应用基础URL(生产环境必填) |
| SMTP_HOST | 172.17.0.1 | SMTP服务器地址(用于邮件通知) |
| SMTP_PORT | 25 | SMTP服务器端口 |
| SMTP_AUTH_STRATEGY | NONE | SMTP认证策略(NONE/PLAIN/LOGIN等) |
| SMTP_FROM_EMAIL | *** | 邮件发送者地址 |
| DATABASE_CLIENT | postgres | 数据库客户端(postgres/mysql/sqlite等) |
| DATABASE_PORT | 5432 | 数据库端口(PostgreSQL默认5432) |
| DATABASE_NAME | strapi | 数据库名称 |
| DATABASE_USERNAME | postgres | 数据库用户名 |
| DATABASE_PASSWORD | your-password | 数据库密码 |
| JWT_SECRET | your-password | JWT令牌加密密钥 |
| ADMIN_JWT_SECRET | your-password | 管理员JWT令牌加密密钥 |
| APP_KEYS | your-password | 应用密钥(用于加密敏感数据) |
| NODE_ENV | development | 运行环境(development/production) |
| DATABASE_HOST | db | 数据库服务名(Docker Compose中定义) |
| API_TOKEN_SALT | your-password | API令牌加密盐值 |
| TRANSFER_TOKEN_SALT | your-password | 传输令牌加密盐值(用于数据迁移) |
部署完成后,通过以下地址访问Strapi管理界面:
[***]
(替换your-domain为服务器IP或域名,9930为Docker Compose中映射的主机端口)
Strapi容器日志输出至stdout,可通过以下命令查看:
docker-compose logs -f # -f参数实时跟踪日志
停止服务:
docker-compose down
由于采用文件夹挂载方式持久化数据,备份和恢复操作简单:
docker-compose downdocker-compose.yml所在目录,执行压缩命令:
zip -r strapi_backup.zip . # 压缩当前目录所有文件(含配置和数据)
unzip strapi_backup.zip -d /path/to/original/folder # 替换为实际目录
docker-compose up -d免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429