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
И можем наблюдать за развертыванием контейнеров.
В первом пункте мы определяем службу 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.
-
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 также автоматически перезапускался в случае сбоя.
http://192.168.0.100:9090
После авторизации, можем наблюдать окно приветствия.
Также предлагаем рассмотреть другие полезные статьи:
- Список важных команд для работы с Docker-compose
- Dockerfile: Полное руководство для начинающих и профессионалов
- Как скопировать данные с хоста в Docker и из Docker на хост