Nextcloud с Docker: не может создать или записать в каталог данных - PullRequest
0 голосов
/ 05 июля 2018

Я успешно установил Nextcloud 13.0, используя Docker и Docker Compose.

Вот репозиторий GitHub с Docker-образом Nextcloud: https://github.com/nextcloud/docker

По умолчанию моя установка Nextcloud сохраняет данные по следующему пути:

/var/lib/docker/volumes/nextcloud_nextcloud/_data/data/user/files
Папка

Моя /var расположена в небольшом разделе, а папка /home имеет около 2 ТБ дискового пространства. Я пытаюсь настроить Nextcloud для хранения загруженных файлов на /home/iamdocker/nextcloud/data на хост-компьютере, но это не работает.

На странице конфигурации Nextcloud отображается следующее сообщение:

Error

Невозможно создать или записать в каталог данных / Главная / iamdocker / nextcloud / данные /

Моя установка 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/

докер-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

Спасибо.

1 Ответ

0 голосов
/ 06 июля 2018

Я понял, в чем проблема: неверный путь в 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
...