Nodejs並支持 React的CMS解決方案(todo study)

Nodejs並支持 React的CMS解決方案(todo study)

在您提到的选项中,以下的 CMS 可以通过 Docker Compose 构建,并使用 MariaDB 进行数据库连接,类似于 WordPress 的部署方式:

1. Strapi

Docker 支持:Strapi 提供了官方的 Docker 镜像,并有示例供参考。

MariaDB 支持:Strapi 默认支持 MariaDB,您可以在配置中指定。

部署示例

以下是一个使用 Docker Compose 部署 Strapi 和 MariaDB 的示例:

version: '3'

services:

  strapi:

    image: strapi/strapi

    ports:

      - '1337:1337'

    environment:

      DATABASE_CLIENT: mysql

      DATABASE_HOST: db

      DATABASE_PORT: 3306

      DATABASE_NAME: strapi

      DATABASE_USERNAME: root

      DATABASE_PASSWORD: example

    depends_on:

      - db

  db:

    image: mariadb:latest

    environment:

      MYSQL_ROOT_PASSWORD: example

      MYSQL_DATABASE: strapi

    volumes:

      - db_data:/var/lib/mysql

volumes:

  db_data:

使用步骤

1. 将上述内容保存为 docker-compose.yml 文件。

2. 在终端中运行 docker-compose up -d 启动服务。

3. 访问 http://localhost:1337,按照提示完成 Strapi 的初始设置。

2. KeystoneJS

Docker 支持:虽然 KeystoneJS 没有官方的 Docker 镜像,但您可以自己编写 Dockerfile,或者使用社区提供的镜像。

MariaDB 支持:通过 Prisma,KeystoneJS 可以连接到 MariaDB。

部署示例

由于需要自定义配置,建议参考以下步骤:

1. 编写 Dockerfile:创建一个包含您的 KeystoneJS 应用的 Dockerfile。

2. 编写 docker-compose.yml:配置 KeystoneJS 服务和 MariaDB 服务。

3. 运行:使用 docker-compose up -d 启动。

3. Payload CMS

Docker 支持:Payload CMS 提供了 Docker 部署指南。

MariaDB 支持:支持 MySQL 兼容的数据库,包括 MariaDB。

部署示例

version: '3'

services:

  payload:

    image: payloadcms/payload

    ports:

      - '3000:3000'

    environment:

      PAYLOAD_CONFIG_PATH: ./payload.config.js

      DATABASE_URL: mysql://root:example@db:3306/payload

    volumes:

      - ./:/usr/src/app

    depends_on:

      - db

  db:

    image: mariadb:latest

    environment:

      MYSQL_ROOT_PASSWORD: example

      MYSQL_DATABASE: payload

    volumes:

      - db_data:/var/lib/mysql

volumes:

  db_data:

4. Webiny

Docker 支持:Webiny 可以使用 Docker 部署,但主要设计为无服务器架构。

MariaDB 支持:需要进行额外的配置,可能不如其他选项直接。

推荐方案

鉴于您的需求,Strapi 是最直接和方便的选择。它提供了官方的 Docker 镜像,默认支持 MariaDB,而且社区资源丰富。

参考资料

Strapi 官方文档Strapi – Getting Started with Docker

Payload CMS Docker 指南Payload CMS – Docker Deployment

注意事项

环境变量:确保在 docker-compose.yml 中正确配置环境变量,如数据库用户名、密码和数据库名称。

数据持久化:使用 Docker 卷(volumes)来持久化数据库数据,防止数据在容器重启时丢失。

端口映射:确认服务的端口映射,避免与本地其他服务冲突。

我覺得wordpress的優勢在於 plugin很多,很多金流都有套件可以用…看來要找時間來試一下這些架站是否可以用來取代wordpress了

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *