通过 Docker Compose 安装配置 Nextcloud

常用操作

更新镜像后出现错误的解决办法
sudo docker exec -it --user www-data nextcloud php occ upgrade
文件操作
# Rescan the AppData folder
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:scan-app-data
# Rescan all files
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:scan --all
# Cleanup filecache
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:cleanup
# Try and repair malformed filesystem tree structures
sudo docker exec -it --user www-data nextcloud /var/www/html/occ files:repair-tree
打开或关闭维护模式
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:repair
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:mode --on
sudo docker exec -it --user www-data nextcloud /var/www/html/occ maintenance:mode --off
进入Nextcloud容器的shell
sudo docker exec -it -u www-data nextcloud sh

Docker Compose 文件

services:
	nextcloud_db:
		image: mariadb
 		container_name: nextcloud_db
		network_mode: host
		command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW # --innodb-read-only-compressed=OFF
		environment:
			- TZ=Asia/ShangHai
			- MYSQL_ROOT_PASSWORD=<passwd>
			- MYSQL_PASSWORD=<passwd>
			- MYSQL_DATABASE=nextcloud
			- MYSQL_USER=nextcloud
		volumes:
			- /mnt/appdata/nextcloud/db:/var/lib/mysql
		restart: unless-stopped

	nextcloud:
		container_name: nextcloud
		image: nextcloud
		network_mode: host
		environment:
			- TZ=Asia/ShangHai
			- MYSQL_PASSWORD=<passwd>
			- MYSQL_DATABASE=nextcloud
			- MYSQL_USER=nextcloud
			- MYSQL_HOST=127.0.0.1:3306
			- PHP_MEMORY_LIMIT=8G
			- PHP_UPLOAD_LIMIT=8G
		depends_on:
			- nextcloud_db
		volumes:
			- /mnt/appdata/nextcloud/html:/var/www/html
			- /mnt/storage/nextcloud_data:/var/www/html/data
			- /mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf
			- /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
			- /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
		restart: unless-stopped

注释:在首次启动时不要挂载以下目录,而是从容器中复制到主机上,这样您就可以在容器内为Nextcloud的apache2服务器做一些自定义配置,例如设置容器内部使用的自定义端口。

  • /mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf
  • /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
  • /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
	sudo docker cp container_name:src_path host_dest_path

更改Nextcloud容器内的端口而不用端口映射

桥接模式下compose文件中加入端口映射是最通常的方式,这里是host模式的更改端口方法
更改/mnt/appdata/nextcloud/etc/apache2/ports.conf:/etc/apache2/ports.conf中的监听端口为您想要的端口。例如:

Listen 9088
<IfModule ssl_module>
       Listen 20443
</IfModule>

<IfModule mod_gnutls.c>
       Listen 20443
</IfModule>

更改虚拟主机端口为000-default.conf 和 default-ssl.conf中您想要的端口。

  • /mnt/appdata/nextcloud/etc/apache2/sites-available:/etc/apache2/sites-available
  • /mnt/appdata/nextcloud/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值