Redmine ialah aplikasi web pengurusan projek dan penjejakan isu yang fleksibel dan sumber terbuka. Ia digunakan secara meluas untuk mengurus projek, menjejaki pepijat, dan mengendalikan tugas dan tarikh akhir. Dibangunkan menggunakan Ruby on Rails, Redmine sangat boleh disesuaikan dan menyokong pelbagai ciri untuk kerjasama pasukan dan organisasi projek.
Redmine ialah alternatif popular kepada alatan pengurusan projek komersil kerana fleksibiliti, penyesuaian dan sifat sumber terbukanya.
Dalam artikel ini kami akan menyediakan redmine pada bekas docker bersama dengan pelayan pangkalan data, mysql dan juga nginx sebagai proksi terbalik.
Kami menggunakan pelayan ubuntu yang dihoskan pada AWS EC2 dan panduan pemasangan daripada pegawai buruh pelabuhan.
# 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
Kami menggunakan versi terkini docker bersama-sama dengan docker compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Ok, docker dipasang, seterusnya kita perlu mengkonfigurasi pengguna kami (ubuntu) boleh mengakses docker secara langsung tanpa sudo.
sudo groupadd docker sudo usermod -aG docker $USER
dan kemudian log keluar dan log masuk semula ke pelayan kami. Docker sudah bersedia!
Kita boleh menggunakan arahan ini di bawah untuk memulakan bekas docker apabila pelayan kami dimulakan semula.
sudo systemctl enable docker.service sudo systemctl enable containerd.service
bekas buruh pelabuhan sudah memadai buat masa ini.
Kami akan mencipta satu fail karang docker.
nano docker-compose.yaml
dan tampal kod yaml ini.
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
seterusnya, kami mencipta fail konfigurasi nginx, folder yang sama dengan fail karang docker
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; } }
dan buat folder yang dipanggil sijil kemudian letakkan sijil kami di sana.
mari jalankan fail karang docker kami dengan arahan
docker-compose up -d
apabila kami menjalankan fail karang docker ini, rangkaian akan dibuat secara automatik dan memautkan tiga perkhidmatan (nginx, redmine, db) dalam satu rangkaian tersebut.
kita boleh menyemak bekas kami dengan arahan :
docker ps -a
dan kemudian uji aplikasi redmine pada penyemak imbas kami dengan port 80 dan port 443 dengan sambungan https. gunakan 'admin' pengguna dan 'admin' kata laluan untuk log masuk pada aplikasi redmine kami.
artikel ini pada asasnya mempunyai hasil yang sama apabila kami memasang pada vps secara langsung, rujuk artikel ini.
Semoga artikel ini membantu anda!
Atas ialah kandungan terperinci Sediakan Redmine pada Docker Container. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!