目录

一键启动 headless CMS:Strapi + MongoDB + Docker

目录

一键启动 headless CMS:Strapi + MongoDB + Docker

本文将通过在macOS上运行Docker容器的方式,搭建一个无头内容管理系统Strapi,核心内容是两个容器的启动:MongoDB和Strapi。

需求:暴露27017端口、设置数据库管理员账号和密码、数据持久化到本地

docker run -d -p 27017:27017  \
    -v `pwd`/mongo:/data/db \
    --name my-mongo --restart always \
    -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
    -e MONGO_INITDB_ROOT_PASSWORD=MongoDBSecret\
    mongo

效果:在当前目录下建立 mongo 目录,并挂载容器中的数据,暴露 27017 接口,设置用户名 mongoadmin 和密码 MongoDBSecret

需求:使用上面的MongoDB、设置上海时区、将数据持久化到本地

docker run -d --restart always --name my-strapi \
  -e DATABASE_CLIENT=mongo \
  -e DATABASE_NAME=strapi \
  -e DATABASE_HOST=host.docker.internal \
  -e DATABASE_PORT=27017 \
  -e DATABASE_USERNAME=mongoadmin \
  -e DATABASE_PASSWORD=MongoDBSecret \
  -p 1337:1337 \
  -e TZ=Asia/Shanghai \
  -v `pwd`/strapi:/srv/app \
  strapi/strapi

效果:在当前目录下建立 strapi 目录,并挂载容器中的应用数据,设置时区为 Asia/Shanghai 。设置数据库环境变量,DATABASE_HOSThost.docker.internal 表示macOS所在的可由容器访问到的DNS名称,可被解析为真实地macOS所在的IP地址,如有疑问,可进一步查看:I want to connect from a container to a service on the host

访问 localhost:1337 即可查看是否成功。

如果用来写博客:

  • 使用自带富文本编辑器,不要想着替换成更好用的编辑器。
  • 使用 Typora 编辑后直接复制到富文本编辑器。