ВОЙТИ
    opened image

    NextCloud — это популярная платформа для обмена файлами и совместной работы с открытым исходным кодом, которая позволяет хранить, совместно использовать и совместно работать над документами, фотографиями, видео и многим другим.

    В этой статье мы познакомим вас с процессом установки NextCloud в Docker Compose.
     

    Установка Docker и Docker Compose


    Прежде чем начать, вам необходимо установить Docker и Docker Compose. Вы можете найти инструкции по установке для своей операционной системы на нашем блоге для Centos 7 или для Ubuntu 20.04.

     

     


    Установим Docker-Compose

     

     

    curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    Устанавливаем права на запуск. 
     

    chmod +x /usr/local/bin/docker-compose

    Проверяем как установился Docker-Compose:
     

    docker-compose --version


     

    Создайте директорию для хранения данных Nextcloud

    В этой директории будут храниться данные пользователей и файлы. Например, вы можете создать директорию /opt/nextcloud-data и перейти:

     

     

     

     

    mkdir /opt/nextcloud-data && cd /opt/nextcloud-data
    

     

     

     

    Создайте файл Docker Compose

    Далее вам нужно создать файл Docker Compose, определяющий сервисы для NextCloud. Чтобы создать файл, откройте текстовый редактор и создайте новый файл с именем docker-compose.yml. Скопируйте и вставьте следующий код в файл:

     

     

     

     

     

    version: '3'
    
    services:
      nextcloud_db:
        image: mariadb:10.5
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        restart: always
        volumes:
          - ./nextcloud-db:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=vAfrhiwaj7spoe1DBARv
          - MYSQL_PASSWORD=22CifgJLFFdeKKuprzT6
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
    
      nextcloud:
        image: nextcloud
        ports:
          - 9090:80
        links:
          - nextcloud_db
        volumes:
          - ./nextcloud-dаta:/var/www/html
        environment:
          - NEXTCLOUD_DATA_DIR=/var/www/html/data
          - MYSQL_PASSWORD=22CifgJLFFdeKKuprzT6
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_HOST=nextcloud_db
        restart: always


    После сохранения файла, запускаем следующую команду в папке где находиться yaml файл:

     

     

     

     

     

    docker-compose up -d

     



    И можем наблюдать за развертыванием контейнеров. 


     

     
    После успешного развертывания, контейнеры будут запущены. 


     
    Рассмотрим конфигурацию Docker Compose файла для запуска двух контейнеров: базы данных MariaDB и веб-приложения Nextcloud.

    В первом пункте мы определяем службу nextcloud_db, которая будет представлять базу данных MariaDB. Для этой службы мы используем официальный образ Docker mariadb:10.5
     
    Затем мы задаем несколько параметров:
    • command: Этот параметр задает команду, которая будет запущена внутри контейнера. Здесь мы задаем параметры для MariaDB, чтобы использовать READ-COMMITTED в качестве уровня изоляции транзакций и ROW в качестве формата бинарных журналов.
    • restart: Этот параметр указывает, что контейнер следует перезапускать автоматически в случае сбоя.
    • volumes: Этот параметр монтирует локальную директорию ./nextcloud-db внутри контейнера по пути /var/lib/mysql. Это позволяет сохранять данные базы данных на локальном диске.

     

    Затем мы задаем переменные среды:

     

    • MYSQL_ROOT_PASSWORD: Это пароль для суперпользователя базы данных MariaDB (root).
    • MYSQL_PASSWORD: Это пароль для пользователя базы данных nextcloud.
    • MYSQL_DATABASE: Это название базы данных, которая будет создана для Nextcloud.
    • MYSQL_USER: Это имя пользователя, которое будет создано для базы данных Nextcloud.
     
    Во втором пункте мы определяем службу nextcloud, которая будет представлять веб-приложение Nextcloud. Для этой службы мы используем официальный образ Docker nextcloud
     
    Затем мы задаем несколько параметров:
     
    • ports: Этот параметр связывает порт 9090 на локальной машине с портом 80 внутри контейнера. Это позволяет получить доступ к Nextcloud из веб-браузера.
    • links: Этот параметр связывает контейнер с базой данных MariaDB, чтобы Nextcloud мог использовать ее для хранения данных.
    • volumes: Этот параметр монтирует локальную директорию ./nextcloud внутри контейнера по пути /var/www/html. Это позволяет сохранять данные приложения на локальном диске.
     
    Затем мы задаем переменные среды:
    • NEXTCLOUD_DATA_DIR: Это путь, по которому Nextcloud будет сохранять данные.
    • MYSQL_PASSWORD: Это пароль для пользователя базы данных nextcloud.
    • MYSQL_DATABASE: Это название базы данных, созданной для Nextcloud.
    • MYSQL_USER: Это имя пользователя, созданное для базы данных Nextcloud.
    • MYSQL_HOST: Этот параметр указывает имя хоста базы данных, с которой должно соединяться приложение Nextcloud.

    Наконец, мы задаем параметр restart, чтобы контейнер Nextcloud также автоматически перезапускался в случае сбоя.
     
    Теперь строке браузера, прописываем IP вашего сервера и порт который вы задали. В нашем случае это 9090.

     

    http://192.168.0.100:9090

     

     

     

     
    Теперь можем авторизоваться. В поле вводим нужный нам логин и пароль. Они будут созданы при входе в панель. 




    После авторизации, можем наблюдать окно приветствия. 

     

     

    В целом, эта конфигурация Docker Compose позволяет легко запустить Nextcloud с базой данных MariaDB, которая сохраняет данные на локальном диске. Благодаря этому, вы можете легко развернуть Nextcloud на вашей локальной машине или сервере, чтобы использовать его для хранения файлов, календаря и т. д.