Перейти к содержимому
Главная страница » Запуск Redmine в docker

Запуск Redmine в docker

Redmine — веб-приложение, используемое для управления проектами. Redmine легко настроить и персонализировать благодаря поддержке тем и плагинов. В этой статье мы расскажем, как установить Redmine с помощью Docker. В качестве базы данных мы будем использовать Postgres. Файлы приложений с отслеживанием состояния будут храниться в томах, которые мы создадим на нашем сервере.

Ручная установка Redmine в Docker

Запуск Redmine в Docker включает в себя запуск сервера баз данных, в нашем случае это Postgres, а после запуск контейнера самого Redmine, по факту у нас получится приложение состоящее из двух контейнеров. Запуск одинаков, как для Windows так и для Linux. Я работаю в консоли linux ubuntu, но для запуска Redmine под Windows, нужно в консоли выполнить те же самые команды.

Создание сети

Мы начнем с создания сети Docker для связи между Postgres и Redmine. Мы собираемся применить эти команды на одной машине, поэтому создадим промежуточную сеть:

docker network create --driver bridge some-network

Запуск базы данных

Мы упоминали, что будем устанавливать Redmine с Postgres. Теперь давайте запустим Postgres с сетью и томом, которые мы создали выше.:

docker run -d --name some-postgres --network some-network -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=redmine postgres

Запуск Redmine

Для запуска Redmine, мы будем использовать официальный образ с DockerHub:

Наконец, мы можем запустить Redmine, используя адрес базы данных и учетные данные, которые мы только что создали:

docker run -d --name some-redmine --network some-network -p 80:3000 -e REDMINE_DB_POSTGRES=some-postgres -e REDMINE_DB_USERNAME=redmine -e REDMINE_DB_PASSWORD=secret redmine

Проверим, что контейнеры созданы и запущены с помощью команды: docker ps

root@: docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                                                            NAMES
4c79c27b8460   redmine                         "/docker-entrypoint.…"   12 minutes ago   Up 12 minutes   0.0.0.0:80->3000/tcp, :::80->3000/tcp                                                            some-redmine
fa422fa55696   postgres                        "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   5432/tcp                                                                                         some-postgres
584818f1b7e3   portainer/portainer-ce:latest   "/portainer"             3 months ago     Up 2 months     0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp   portainer

После этого мы можем открыть браузер и ввести IP-адрес, чтобы увидеть нашу установку. Имя пользователя и пароль по умолчанию — admin — admin.

Перейдем на страницу:

http://localhost/ или http://IP адрес сервера

Изменим пароль администратора.

Запуск Redmine с помощью Docker-compose

То же самое можно сделать проще и быстрее с помощью Docker-compose.

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

Основная фишка Docker Compose в том, что достаточно подготовить yaml файл, в котором необходимо описать все необходимые контейнеры и их параметры, после чего с помощью одной команды можно выполнить их сборку и запуск. Команды выполняются, как под операционной системой Linux так и под Windows.

Создадим папку для файла: docker-compose.yml

mkdir redmine-docker
cd redmine-docker

Перенесем или создадим в каталоге файл docker-compose.yml со следующим содержанием:

version: '3.3'
services:
   postgres:
     image: postgres:10
     volumes:
       - ./storage/postgresql-data:/var/lib/postgresql/data
     environment:
       POSTGRES_PASSWORD: "PASSWORD"
       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: "PASSWORD"
       REDMINE_DB_DATABASE: "redmine"
       REDMINE_SECRET_KEY_BASE: "…"
     restart: always

Для сборки выполните команду:

docker-compose up -d

Резервное копирование Redmine в Docker

Формат команды:

docker exec -i your-db-container /usr/bin/pg_dump \
 -U postgresql_user postgresql_database > postgres-backup.sql 

Для резервного копирования необходимо сделать бэкап базы данных Postgres:

docker exec -i some-postgres /usr/bin/pg_dump  -U redmine postgres > postgres-backup.sql

some-postgres — название контейнера
redmine — пользователь базы данных postgres
postgres — название базы данных postgres

В данном случае бэкап базы данных окажется на сервере с установленным Docker в рабочей папке пользователя.

Восстановление базы данных Redmine в Docker

Формат команды:

cat your_dump.sql | docker exec -i your-db-container psql -U your-db-user -d your-db-name

В нашем случае команда будет выглядеть следующим образом:

docker exec -i some-postgres psql -U redmine postgres

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *