使用 Docker Compose 搭建 Nextcloud + Redis

欢迎阅读本篇教程,本篇教程将介绍如何使用 Docker Compose 搭建 Nextcloud + Redis。

一、安装 Docker 和 Docker Compose

首先,需要在服务器上安装 Docker 和 Docker Compose。Docker 是一个开源的应用程序容器引擎,可以帮助你在不同的环境中快速构建、部署和运行应用程序。Docker Compose 则是一个用于定义和运行多个 Docker 容器的工具。

安装 Docker 和 Docker Compose 的具体步骤可以参考官方文档:[1],[2]。

二、配置 Docker Compose 文件

创建项目目录,并在该目录下创建 docker-compose.yml 文件。

然后,在 docker-compose.yml 文件中添加以下内容:

version: '3'

services:
  db:
    image: linuxserver/mariadb
    volumes:
      - /pls_change:/config
    restart: always
    environment:
      MYSQL_DATABASE: pls_change
      MYSQL_USER: pls_change
      MYSQL_PASSWORD: pls_change
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
      PUID: 1000   #通过bash里面 id
      PGID: 1001   #
      TZ: Asia/Shanghai
    ports:
      - 172.17.0.1:8888:80
    network_mode: bridge
    container_name: mariadb

  redis:
    image: redis
    restart: always
    network_mode: bridge
    ports:
      - 172.17.0.1:6379:6379/tcp
    container_name: redis
    hostname: redis
    volumes:
      - /pls_change/redis:/data

  app:
    image: linuxserver/nextcloud:latest
    container_name: nextcloud
    environment:
      - PUID=1000 #通过bash里面 id
      - PGID=1001 #
      - TZ=Asia/Shanghai
    volumes:
      - /pls_change:/config
      - /pls_change:/data
    ports:
      - /pls_change:443
    restart: unless-stopped
    network_mode: bridge
    depends_on:
      - db
      - redis

其中:

  • db:MariaDB 数据库服务用于存储 Nextcloud 的数据。
  • redis:Redis 服务则是用于缓存 Nextcloud 的数据和查询结果。
  • app:Nextcloud 服务将通过 PHP-FPM 运行,并依赖于 MariaDB 和 Redis 服务。

这里我们用了linuxserver的镜像,好处是可以复用当前用户的权限,不会导致当前用户无法访问数据文件夹。麻烦点的是,linuxserver默认用了sqllite数据库,需要切换

三、启动服务

创建好 docker-compose.yml 文件后,我们可以使用以下命令启动服务:

docker-compose up -d

其中,-d 参数表示在后台运行服务。如果需要查看服务的日志信息,可以使用 docker-compose logs 命令。

四、转化Nextcloud 使用的数据库,并配置 Nextcloud 使用 Redis 缓存

接下来,我们需要在 Nextcloud 中配置使用 Redis 缓存。

使用以下命令进入 Nextcloud 容器:

docker-compose exec app bash

转化Nextcloud 使用的数据库,将数据库转化成mysql

 occ db:convert-type --all-apps --port="8888" --password='password' mysql  dbusername dbhost dbname
https://docs.nextcloud.com/server/26/admin_manual/configuration_database/db_conversion.html

然后,修改 /config/www/nextcloud/config/config.php 文件,添加以下内容:

  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => [
     'host' => '172.17.0.1',
     'port' => 6379,
  ]

其中,redis 配置用于指定 Redis 服务的主机名(172.17.0.1)和端口号(6379)。

最后,保存文件并重启 Nextcloud 容器即可完成 Nextcloud + Redis 缓存的搭建。

总结

本篇教程介绍了如何使用 Docker Compose 搭建 Nextcloud + Redis,通过 Docker Compose 管理容器和服务,我们可以轻松地扩展服务,并快速进行环境配置和部署。

参考来源链接:[1],[2],[3],[4],[5],[6]。

Leave a Reply

Your email address will not be published. Required fields are marked *