一键启动 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_HOST
为 host.docker.internal
表示macOS所在的可由容器访问到的DNS名称,可被解析为真实地macOS所在的IP地址,如有疑问,可进一步查看:I want to connect from a container to a service on the host。
访问 localhost:1337 即可查看是否成功。
如果用来写博客:
- 使用自带富文本编辑器,不要想着替换成更好用的编辑器。
- 使用 Typora 编辑后直接复制到富文本编辑器。