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 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, см. эту статью.
Надеюсь, эта статья вам поможет!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3