— docker, nextcloud — 1 min read
nextcloud中文有下一代云盘的意思,在这个云盘上我们可以做很多事情,资料存储,密码管理及存储,离线下载等。有些功能已经集成在nextcloud中了,有一些功能可以通过安装插件实现。
下面就介绍下使用docker-compose来安装配置nextcloud网盘。
使用docker-compose可以快速编排docker
服务,让容器管理变得简单。
编写docker-compose.yaml
文件,内容如下:
1version: '3'2services:3 nextcloud:4 image: nextcloud:apache5 container_name: nextcloud_web6 depends_on:7 - redis8 environment:9 - uid=100010 - gid=100011 - upload_max_size=10g12 - apc_shm_size=128m13 - opcache_mem_size=12814 - cron_period=15m15 - tz=aisa/shanghai16 - domain=http://exmaple.com171819 volumes:20 - /app/docker/nextcloud:/var/www/html21 expose:22 - 700923 ports:24 - 7009:80/tcp25 restart: always2627 redis:28 image: redis:alpine29 container_name: redis30 restart: always31 expose:32 - 637933 restart: always3435 onlyoffice:36 image: onlyoffice/documentserver37 container_name: onlyoffice38 hostname: onlyoffice39 environment:40 - redis_server_host=redis41 - redis_server_port=637942 volumes:43 - /app/docker/onlyoffice/data:/var/www/onlyoffice/data44 - /app/docker/onlyoffice/logs:/var/log/onlyoffice45 restart: always46 expose:47 - 900048 ports:49 - 9000:80
注意:
yaml
文件严格区分缩进和空格。
docker-compose
参数说明:
注意,容器无法保存数据,删除后数据就丢失了,配置volumes有利于数据持久化到硬盘
由于是个人和小团队使用,上述的配置中使用了nextcloud
默认的sqlite
数据库。如果你的nextcloud
需要考虑到一定的并发和一定规模人数使用,建议使用mysql
等数据库替换内嵌型数据库。
配置redis: 上述的配置我们让docker依赖了redis,这个需要配置才能让docker redis缓存生效。编辑配置文件:
1$ vim /app/docker/nextcloud/config/config.php
具体路径为
docker-compse
中volume中映射的宿主机路径
找准位置在【'memcache.local' => '\OC\Memcache\APCu',】 这行后面
增加下面的代码:
1'memcache.locking' => '\OC\Memcache\Redis',2'redis' => array(3 'host' => 'redis',4 'port' => 6379,5 ),
注意修改对应的
host
和port
,redis
和nextcloud
同docekr
网络故可以用container name
替代。由于修改的是php脚本文件,所以保存后无需重启就可生效。
检查redis配置是否生效:
进入redis
容器环境
1$ docker exec -it redis /bin/sh
执行redis监控
1redis-cli monitor
然后去访问nextcloud
页面并进行页面操作。查看redis
监控日志,如果有日志输出则说明配置成功。
启动服务:
在docker-compose.yaml文件目录使用docker-compose up -d
即可后台启动服务,启动并设置账号密码登入。
安装插件: 由于服务是安装在内网上,并且是直接通过ip和端口访问的,所以并没有配置https.部门需要https状态才可以使用,故不在这推荐,下面一些插件都是可以在http状态使用的。插件可以在应用里面找到并开启,但是nextcloud插件市场在国内访问是有问题的,无法显示插件信息及下载插件。
所以我们可以通过离线安装的方式使用插件: all apps - app store - nextcloud 在nextcloud应用市场找到插件包并下载,然后将其上传到nextcloud的apps目录,如果是linux系统可以直接借助scp或rsync上传.以scp上传onlyoffice插件为例:
1$ scp onlyoffice.tar.gz [email protected]:/app/docker/nextloud/apps
进入apps目录解压并删除压缩包:
1$ tar -zxf onlyoffice.tar.gz && rm -rf onlyoffice.tar.gz
注意:如果不是root账号,可以会上传失败。(docker目录是root用户组)
以下插件安装步骤同上:
新建drawio文件,选择+创建diagam文件会创建一个xml格式的文件并进入drawio工作空间。 选择导入draw.io创建保存的本地文件
注意,在draw.io保存的格式是
.drawio
格式不能直接用nextcloud点击打开
注意,默认消息是不会持久化保存的,如果需要将聊天记录存档,需要通过右侧聊天窗口右下角点击设置
nextcloud具有高度的可定制性,以上介绍直接nextcloud的一小部分功能,更多的可以参考nextcloud官方的 pdf介绍文件。当然,也可以发挥自己的想象来使用nextcloud网盘。
(完)