通过docker部署nextcloud服务

wxh Lv2

前提条件

  • 已经在同一docker network下创建了mysql数据库容器和redis缓存库容器

DockerCompose配置文件

创建docker-compose.yml配置,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
networks:
default:
external: true
name: local

services:
nextcloud:
image: nextcloud:stable
container_name: nextcloud
restart: always
environment:
UID: 挂载目录所属宿主机用户ID
GID: 挂载目录所属宿主机用户组ID
MYSQL_DATABASE: 数据库名称
MYSQL_USER: 数据库用户
MYSQL_PASSWORD: 数据库密码
MYSQL_HOST: 数据库服务地址
REDIS_HOST: 缓存库服务地址
REDIS_HOST_PASSWORD: 缓存库密码
TZ: Asia/Shanghai
OVERWRITEPROTOCOL: https
APACHE_BODY_LIMIT: 104857600
PHP_MEMORY_LIMIT: 1024M
PHP_UPLOAD_LIMIT: 16G
volumes:
- ./html:/var/www/html
- /etc/localtime:/etc/localtime
# - 证书路径:/etc/ssl/certs/ssl-cert-snakeoil.pem
# - 证书密钥路径:/etc/ssl/private/ssl-cert-snakeoil.key
ports:
- 443:443 # 酌情修改
- 80:80 #酌情修改
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 768M

如果要开启SSL

前提

将证书映射到容器内的/etc/ssl/certs/ssl-cert-snakeoil.pem

将证书私钥映射到容器内的/etc/ssl/private/ssl-cert-snakeoil.key

通过docker exec -it nextcloud /bin/bash进入容器内部执行以下命令:
1
2
3
4
apt update
apt install vim
a2enmod ssl
a2ensite default-ssl

不要退出容器,继续使用vim命令编辑/etc/apache2/conf-enabled/apache-limits.con命令:

1
vim /etc/apache2/conf-enabled/apache-limits.con

LimitRequestBody的值修改为209715200

不要退出容器,最后使用以下命令:

1
service apache2 reload

使设置生效.最后退出容器,检查效果

注意

使用当前方案创建好的nextcloud服务在管理设置/概览/安全与设置警告中存在以下警告:

  • 您的 Web 服务器未正确设置以解析 “/ocm-provider/“。 这很可能与未更新以直接提供此文件夹的 Web 服务器配置有关。 请将您的配置与 Apache 的 “.htaccess” 中提供的重写规则或 Nginx 文档中提供的重写规则进行比较。 在 Nginx 上,通常以 “location ~” 开头的行需要更新。 了解更多详情,请参见文档 ↗。

  • 您的网络服务器未正确设置来解析 .wellknown URL,失败于: /.well-known/webfinger 了解更多详情,请参见文档 ↗。

  • 您的实例上的某些标头设置不正确 - 未设置 Strict-Transport-Security HTTP 标头(应至少为 15552000 秒)。为了增强安全性,建议启用 HSTS。 了解更多详情,请参见文档 ↗。

  • 标题: 通过docker部署nextcloud服务
  • 作者: wxh
  • 创建于 : 2025-05-19 00:00:00
  • 更新于 : 2025-05-19 13:34:57
  • 链接: https://me.private-line.org/2025/05/19/通过docker部署nextcloud服务/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
通过docker部署nextcloud服务