opened image

Как установить NextCloud используя Docker Compose

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 на вашей локальной машине или сервере, чтобы использовать его для хранения файлов, календаря и т. д.

Также предлагаем рассмотреть другие полезные статьи: