«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Настройка Redmine в Docker-контейнере

Настройка Redmine в Docker-контейнере

Опубликовано 9 ноября 2024 г.
Просматривать:639

Setup Redmine on Docker Container

Redmine — это гибкое веб-приложение с открытым исходным кодом для управления проектами и отслеживания проблем. Он широко используется для управления проектами, отслеживания ошибок, управления задачами и соблюдением сроков. Redmine, разработанный с использованием Ruby on Rails, обладает широкими возможностями настройки и поддерживает широкий спектр функций для совместной работы в команде и организации проектов.

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

В этой статье мы настроим Redmine в Docker-контейнере вместе с сервером базы данных, MySQL, а также nginx в качестве обратного прокси.

Установить Докер

Мы используем сервер Ubuntu, размещенный на AWS EC2, и руководство по установке от официального Docker.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Мы используем последнюю версию Docker вместе с Docker Compose.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Хорошо, докер установлен, теперь нам нужно настроить, чтобы наш пользователь (ubuntu) мог получить доступ к докеру напрямую без sudo.

sudo groupadd docker
sudo usermod -aG docker $USER

, а затем выйдите из системы и снова войдите на наш сервер. Докер готов!
Мы можем использовать эту команду ниже, чтобы запустить Docker-контейнер при перезапуске нашего сервера.

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

докер-контейнера на данный момент достаточно.

Создать файл компоновки Docker

Мы создадим один файл Docker Compose.

nano docker-compose.yaml

и вставьте этот yaml-код.

version: '3.1'

services:
  nginx:
    # we use the latest of nginx as base
    image: nginx:latest
    restart: always
    # we expose port 80 and 443 to the public as our reverse proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      # we link volume from host for nginx configuration
      - './nginx.conf:/etc/nginx/conf.d/nginx.conf'
      # we link volume from host for nginx certs
      - './certs:/etc/nginx/certs'
      # we link also timezone from the host
      - '/etc/localtime:/etc/localtime:ro'
      - '/etc/timezone:/etc/timezone:ro'
    depends_on:
      # we will wait until server redmine is ready
      - redmine
  redmine:
    # we use redmine from dockerhub as base
    image: redmine
    restart: always
    volumes:
      # we link redmine data to our local storage, so it will persistent when
      # the service redmine restarted
      - 'redmine_data:/usr/src/redmine/files'
      # we link redmine plugin also from the host
      - '/home/bkn/redmine_plugins:/usr/src/redmine/plugins'
      # we link also timezone from the host
      - '/etc/localtime:/etc/localtime:ro'
      - '/etc/timezone:/etc/timezone:ro'
    # we don't expose port on this service because nginx service will do
    # default port redmine expose internally is 3000
    #ports:
      #- 3000:3000
      #- 444:3000
    environment:
      # we create some env for redmine
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PORT: 3306
      REDMINE_DB_DATABASE: redmine_db
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: my_p@ssword
      REDMINE_SECRET_KEY_BASE: G75eddsecretkey
    # we will wait until db service is ready
    depends_on:
      - db
  db:
    # we use mysql server for redmine database
    image: mysql:8.0
    restart: always
    volumes:
      # we also link the database storage with volume we created below
      - 'mysql_data:/var/lib/mysql'
    environment:
      # we create some env for mysql
      MYSQL_USER: redmine
      MYSQL_PASSWORD: my_p@ssword
      MYSQL_RANDOM_ROOT_PASSWORD: 1
      MYSQL_ROOT_PASSWORD: JRFFHT534rth4u3!@#
      MYSQL_DATABASE: redmine_db

volumes:
  # we create two volume used by redmine and our database
  mysql_data:
    driver: local
  redmine_data:
    driver: local

Далее мы создаем файл конфигурации nginx в той же папке, что и файл docker-compose

nano nginx/nginx.conf
server {
        listen 80;
        server_name proman.withenri.tech;
        location / {
            proxy_pass http://henri_redmine_1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
server {
        listen 443 ssl;
        server_name proman.withenri.tech;
        ssl_certificate /etc/nginx/certs/withenri.tech_chained.crt;
        ssl_certificate_key /etc/nginx/certs/withenri.tech.key;
        location / {
            proxy_pass http://henri_redmine_1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

и создайте папку с именем certs, а затем поместите туда наши сертификаты.

Создать контейнер

Давайте запустим наш файл Docker Compose с помощью команды

docker-compose up -d

когда мы запустим этот файл создания докера, сеть будет создана автоматически и свяжет три службы (nginx, redmine, db) в эту одну сеть.

мы можем проверить наш контейнер с помощью команды :

docker ps -a

, а затем протестируйте приложение Redmine в нашем браузере с портом 80 и портом 443 с https-соединением. используйте пользователя «admin» и пароль «admin» для входа в наше приложение Redmine.

эта статья в основном дает тот же результат, когда мы установили ее напрямую на VPS, см. эту статью.

Надеюсь, эта статья вам поможет!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/henri_sekeladi/setup-redmine-on-docker-container-ohk?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3