美文网首页
定制优化Nextcloud镜像

定制优化Nextcloud镜像

作者: 攻城狮_正 | 来源:发表于2021-02-27 00:21 被阅读0次

Nextcloud 是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。

Nextcloud 基于PHP语言开发,可以使用 Nginx + PHP 或 Apache + PHP 部署。我个人推荐Docker方式运行,官方的Nextcloud Docker镜像有做很多优化,部署简单,升级也方便。

运行NextCloud

Nextcloud 的数据是保存在数据库中的,支持 SQLite,MySQL,PostgreSQL。据说 Nextcloud 使用 PostgreSQL 有Buff加成。

下载镜像:

docker pull nextcloud:latest;

docker pull postgres:latest;

运行PostgreSQL:

docker run -d -p 5432:5432 --name postgresql --restart=always \
    -e POSTGRES_USER=nextcloud \
    -e POSTGRES_PASSWORD=cloud@2021 \
    -v /data/nextcloud/postgresql:/var/lib/postgresql/data \

运行NextCloud:

docker run -d -p 8080:80 --name nextcloud --restart=always \
    -v /data/nextcloud/apps:/var/www/html/custom_apps \
    -v /data/nextcloud/config:/var/www/html/config \
    -v /data/nextcloud/data:/var/www/html/data \
    -v /data/nextcloud/theme:/var/www/html/themes/ \
    nextcloud

Docker运行Nextcloud网上教程太多,以上命令简单,不再讲解。

如果成功,输入访问地址就可以看到配置界面,一切设置完成后就可使用 Nextcloud 了。

生成缩略图

使用时会发现,Nextcloud 上传的视频不能生成缩略图。其实 Nextcloud 本身支持生成视频缩略图,需要安装 ffmpeg 并修改配置:

docker exec -it nextcloud bash

apt update

apt install ffmpeg

修改/var/www/html/config/config.php配置文件,添加:

'enable_previews' => true,
'enabledPreviewProviders' =>
array (
  0 => 'OC\\Preview\\Image',
  1 => 'OC\\Preview\\Movie',
  2 => 'OC\\Preview\\TXT',
),

支持挂载Samba

Nextcloud 不仅是一个私有网盘,它还支持管理其他外部存储。可以把Samba共享,FTP,WebDAV等挂载到目录下统一访问管理。

Nextcloud默认是没有开启外部存储功能的,需在手动启用插件。

c75f31e1be66420e0f4bfd32fbc27371.png

然后在设置里可以看到:

ca6f4f7c65a8dccb397f2310cad7107e.png

Docker部署的 Nextcloud 默认是无法挂载 Samba 的,这里会显示:

1c984ce630bf9de240b5eb59ddea5dd3.png

需要在容器内安装smbclient:

docker exec -it nextcloud bash

apt install smbclient libsmbclient-dev

pecl install smbclient

docker-php-ext-enable smbclient

重启Docker服务即可。

自制Docker镜像

以上两处调整,在升级 Nextcloud 镜像后又需要重新执行一次。我们可以用原镜像为基础定制一个 Nextcloud 镜像。

建建文件 Dockerfile ,内容如下:

FROM nextcloud:latest
LABEL maintainer="engr-z"

RUN apt update && apt upgrade -y
RUN apt install ffmpeg smbclient libsmbclient-dev -y
RUN pecl install smbclient
RUN docker-php-ext-enable smbclient

然后在该目录下执行:

docker build -t my_nextcloud:latest ./

执行完后会生成新的镜像:

421cdd15bd81d0b8e4093339aa7c46ba.png

我们只需要用该镜像运行即可。

Nextcloud 升级

1.执行 docker pull nextcloud:latest 下载最新镜像,再构建自己的镜像。

2.停止正在运行的Nextcloud并删除:

docker stop nextcloud

3.重新运行镜像,参数和原来一样。

通过 Web 进入 Nextcloud 就会出现:

335e5520f3bc5707c522e741d201cf9e.png

不推荐在该界面上点击更新。因为在更新内容多的情况,尤其是第三方应用更新,时间较长,浏览器可能会超时,推荐使用 occ 更新。

occ命令是Nextcloud的命令行界面,Nextcloud管理员可以通过occ执行许多常见的服务器操作。命令格式:

sudo -u www-data php occ <your_command>

在Docker中运行的Nextcloud执行occ会出现权限问题:

837ffef0f0babc65df9ce702545ef689.png

正确执行:

docker exec --user www-data nextcloud php occ upgrade

写这篇文章时,Nextcloud 21刚刚发布,性能提升巨大。我自己也一直用 Nextcloud 管理家庭的照片和视频,非常Nice。


除非注明,否则均为"攻城狮·正"原创文章,转载请注明出处。
本文链接:https://engr-z.com/278.html

相关文章

  • 定制优化Nextcloud镜像

    Nextcloud 是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而...

  • 镜像:nextcloud

    Supported tags and respective Dockerfile links 13.0.10-ap...

  • mac下使用docker部署pm2管理的node.js项目

    安装docker 定制化node镜像 定制镜像有两种方式 定制应用镜像 基于基本的node镜像,根据具体应用定制应...

  • Dockerfile详解

    FROM 镜像名定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像,后续的操作都是基...

  • Dokcer使用DokcerFile定制镜像

    Dokcer使用DokcerFile定制镜像 定制docker镜像的方式有两种: 手动修改容器内容,导出新的镜像。...

  • skywalking安装及使用

    Dokcer使用DokcerFile定制镜像 定制docker镜像的方式有两种: 手动修改容器内容,导出新的镜像。...

  • docker

    FROM: 定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 ...

  • docker - commit、publish、transmis

    提交container定制镜像 上传镜像到仓库 上传镜像->repository(!如果该repository不存...

  • 定制镜像

    使用 docker commit定制镜像 当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被...

  • docker下LNMP环境的搭建

    mysql镜像下载 nginx镜像下载 php镜像定制,以下为Dockerfile 生成新的php镜像 LNMP启...

网友评论

      本文标题:定制优化Nextcloud镜像

      本文链接:https://www.haomeiwen.com/subject/takbfltx.html