Іноді виникає завдання розгорнути, наприклад, redmine швидко і без будь-яких мудростей, щоб відразу приступити до своїх завдань. Щоб довго не морочитися через помилки при інсталяції, можна зробити простіше і скористатися контейнеризацією, а конкретно вже всім відомим Docker.
Але оскільки контейнери залишаються по суті незмінними сутностями, і, просто запустивши redmine і базу даних без підготовки, ви можете помилуватися змінами, внесеними до перезапуску контейнера, то після його зупинки вам доведеться починати все спочатку. Це в загальних рисах. Тому були винайдені різні методи видалення даних, які необхідно зберегти. Тут я не буду згадувати про шари докерів і тому подібне, думка наводить на те, що потрібно винести окремо якісь каталоги, в яких будуть важливі і потрібні дані. Тож давайте почнемо з швидкої інсталяції докерів, а потім перейдемо до інсталяції redmine через docker-compose.
Інсталюємо докер:
sudo apt update
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common -y
Додаємо ключа з репозиторія:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo apt-key add -
Додаємо стабільну версію docker
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt install -y docker-ce docker-compose
Давайте додамо себе (наприклад, нехай наш логін буде administrator) в групу докерів, щоб не писати sudo кожного разу при виконанні команд
sudo usermod -aG docker administrator
Створіть папку для проекту
mkdir ~/docker && cd ~/docker
Тепер давайте створимо файл Docker з таким вмістом
nano Dockerfile
FROM redmine:4.1
RUN apt-get update
Нам знадобиться Dockerfile, щоб створити власний образ Redmine. Наприклад, якщо плагін потребує встановлення залежностей, ми просто додаємо команди для встановлення залежностей у Dockerfile після інструкції RUN. Створіть файл docker-compose.yml із таким вмістом:
nano docker-compose.yml
version: '3.3'
services:
postgres:
image: postgres:10
volumes:
- ./storage/postgresql-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: "strong_pass"
POSTGRES_DB: "redmine"
PGDATA: "/var/lib/postgresql/data"
restart: always
redmine:
build:
context: .
image: redmine:custom
ports:
- 80:3000
volumes:
- ./storage/docker_redmine-plugins:/usr/src/redmine/plugins
- ./storage/docker_redmine-themes:/usr/src/redmine/public/themes
- ./storage/docker_redmine-data:/usr/src/redmine/files
environment:
REDMINE_DB_POSTGRES: "postgres"
REDMINE_DB_USERNAME: "postgres"
REDMINE_DB_PASSWORD: "strong_pass"
REDMINE_DB_DATABASE: "redmine"
REDMINE_SECRET_KEY_BASE: "…"
restart: always
Як бачите, у файлі docker-compose.yml створено кілька точок пересилання (або томів), у яких зберігаються база даних, файли теми, файли, завантажені користувачами, і файли плагінів, які завжди можна знайти на https://www. redmine.org/plugins/ Усі ці папки доступні в хост-системі за вказаним вище шляхом: ~ / docker / storage / Тепер, коли контейнер буде запущено, наступні папки будуть створені за шляхом ~ / docker / storage / : файли бази будуть зберігатися в папці postgresql-data, плагіни в папці docker_redmine-plugins, теми в docker_redmine-themes (якщо хтось ними користується), в docker_redmine-data – файли, прикріплені до завдань в redmine. В принципі все готово. Ви можете запустити docker-compose up і, дочекавшись завантаження необхідних зображень, ви побачите рядки про те, що все пройшло добре.
docker-compose up
Після запуску обов'язково зайдіть в «Адміністрування» і в спливаючому повідомленні натисніть «Завантажити схему даних», інакше багато функцій можуть не працювати.
Redmine готовий до роботи. Оновити його досить просто. Щоб оновити версію redmine, потрібно виконати дві команди
docker-compose build
docker-compose restart
На цьому все.
Коментарі