Redmine은 유연한 오픈 소스 프로젝트 관리 및 문제 추적 웹 애플리케이션입니다. 프로젝트 관리, 버그 추적, 작업 및 마감일 처리에 널리 사용됩니다. Ruby on Rails를 사용하여 개발된 Redmine은 사용자 정의가 가능하며 팀 협업 및 프로젝트 구성을 위한 다양한 기능을 지원합니다.
Redmine은 유연성, 사용자 정의 및 오픈 소스 특성으로 인해 상용 프로젝트 관리 도구의 인기 있는 대안입니다.
이 기사에서는 데이터베이스 서버, mysql 및 nginx와 함께 docker 컨테이너에 redmine을 역방향 프록시로 설정합니다.
AWS EC2에서 호스팅되는 ubuntu 서버와 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 compose와 함께 최신 버전의 docker를 사용합니다.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
좋아, docker가 설치되었습니다. 다음으로 사용자(ubuntu)가 sudo 없이 docker에 직접 액세스할 수 있도록 구성해야 합니다.
sudo groupadd docker sudo usermod -aG docker $USER
그런 다음 로그아웃하고 서버에 다시 로그인하세요. 도커가 준비되었습니다!
서버가 다시 시작될 때 아래 명령을 사용하여 도커 컨테이너를 시작할 수 있습니다.
sudo systemctl enable docker.service sudo systemctl enable containerd.service
지금은 docker 컨테이너로 충분합니다.
docker compose 파일을 1개 생성하겠습니다.
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
다음으로 docker-compose 파일과 동일한 폴더에 nginx 구성 파일을 생성합니다
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
이 docker compose 파일을 실행하면 네트워크가 자동으로 생성되고 해당 네트워크에 세 가지 서비스(nginx, redmine, db)가 연결됩니다.
다음 명령을 사용하여 컨테이너를 확인할 수 있습니다.
docker ps -a
그런 다음 https 연결을 사용하여 포트 80 및 포트 443을 사용하여 브라우저에서 Redmine 애플리케이션을 테스트합니다. Redmine 애플리케이션에 로그인하려면 사용자 'admin'과 비밀번호 'admin'을 사용하세요.
이 글은 기본적으로 vps에 직접 설치했을 때와 동일한 결과가 나오니 이 글을 참고하세요.
이 기사가 도움이 되기를 바랍니다!
위 내용은 Docker 컨테이너에 Redmine 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!