我使用Docker和Docker Compose成功安装了Nextcloud 13.0。
这是Nextcloud的Docker映像的GitHub存储库: https://github.com/nextcloud/docker
默认情况下,我的Nextcloud安装会将数据存储到以下路径:
/var/lib/docker/volumes/nextcloud_nextcloud/_data/data/user/files
我的/var
文件夹位于一个小的分区上,而/home
文件夹具有大约2Tb的存储空间。我正在尝试将Nextcloud设置为将上传的文件存储到主机上的/home/iamdocker/nextcloud/data
上,但是不起作用。
Nextcloud配置页面显示以下消息:
错误
无法创建或写入数据目录 / home / iamdocker / nextcloud / data /
我的Nextcloud安装(在Docker容器中运行)没有写权限。
.env
MYSQL_ROOT_PASSWORD=***********************
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=************************************
MYSQL_HOST=db
NEXTCLOUD_VERSION=13.0
NEXTCLOUD_ADMIN_USER=example
NEXTCLOUD_ADMIN_PASSWORD=********************************
NEXTCLOUD_TABLE_PREFIX=nc_
NEXTCLOUD_DATA_DIR=/home/iamdocker/nextcloud/data/
docker-compose.yml
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
env_file:
- .env
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
app:
image: nextcloud:${NEXTCLOUD_VERSION}
env_file:
- .env
ports:
- 8081:80
links:
- db
volumes:
- nextcloud:/var/www/html
- ./data:/var/www/html/data
environment:
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
- NEXTCLOUD_TABLE_PREFIX=${NEXTCLOUD_TABLE_PREFIX}
- NEXTCLOUD_DATA_DIR=${NEXTCLOUD_DATA_DIR}
restart: always
谢谢。
答案 0 :(得分:2)
我弄清楚了问题所在:NEXTCLOUD_DATA_DIR
中的错误路径。
环境变量NEXTCLOUD_DATA_DIR
使用容器中Nextcloud数据目录的路径,而不是主机上已安装卷的路径。
解决方案:我在/home/iamdocker/nextcloud/data/
文件中将/var/www/html/data
替换为.env
。
.env
MYSQL_ROOT_PASSWORD=***********************
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=************************************
MYSQL_HOST=db
NEXTCLOUD_VERSION=13.0
NEXTCLOUD_ADMIN_USER=example
NEXTCLOUD_ADMIN_PASSWORD=********************************
NEXTCLOUD_TABLE_PREFIX=nc_
NEXTCLOUD_DATA_DIR=/var/www/html/data