[Docker]Redmine Docker Container 생성 후 외부DB(MariaDB) 연동하기

Imagem de capa

[1. 개요]

Redmine을 도커 컨테이너 위에 실행시키고 싶다는 생각이 들었다. 그래서 이런저런 레퍼런스를 찾아보았는데, 대부분의 레퍼런스가 docker-compose.yml 안에 Redmine과 DB(Mysql, PostgreSQL)를 컨테이너로 생성하여 연동하는 방식을 사용했다. 하지만 나는 Redmine은 Docker 컨테이너로 올리고, redmine DB는 기존에 서버에 설치된 MariaDB를 사용하고 싶었다.

맨 처음으로 사용한 redmine 도커 이미지는 “redmine” 이었다. 하지만 해당 이미지로는 database.yml 파일이 죽어도 수정이 되지 않았다(물론 내가 실력이 딸려서 그런 것일 수도 있다). 그 다음으로 시도한 도커 이미지는 “bitnami/redmine”였으나 해당 이미지로도 접속하는 database 수정이 되지 않아서(자꾸 이상한 DB 참조하다 timeout으로 docker 컨테이너가 죽어버림) 포기했다.

세번째로 시도한 redmine 도커 이미지는 “sameersbn/redmine”였다. 해당 도커 이미지로 docker-compose.yml을 만들어서 새로운 이미지 생성 후 컨테이너로 올렸더니 redmine이 서버의 MariaDB와 정상 연동되면서 동작하였다. 그럼 이제 어떤 식으로 연동을 진행했는지 상세히 적어보도록 하겠다.


[2. redmine에서 사용할 DB 계정을 MariaDB에서 외부 접근 허용]

MariaDB는 기본적으로 내부/외부 접속이 허용되지 않는다. 따라서 특정 계정에게 내부/외부 접속 허용 권한을 부여해야 한다.


[3. docker-compose.yml 파일 작성]

version: '3.7'  # 도커 버전에 맞는 버전으로 작성

services:
   redmine:
      image: 'sameersbn/redmine:latest'
      ports:
         - '8082:80'
      environment:
         - DB_ADAPTER=mysql2
         - DB_HOST=(DB ip 주소)
         - DB_PORT=(DB포트 번호)
         - DB_NAME=(DATABASE 명)
         - DB_USER=(DB 유저 명)
         - DB_PASS=(DB 비밀번호)
      volumes:
         - '/home/admin/docker/redmine-data:/home/redmine/data'
      container_name: 'redmine-container'

[4. docker-compose.yml 파일 실행]


[5. centos 포트 방화벽 오픈]

redmine 포트로 지정한 8082 포트는 기본적으로 열려있지 않은 포트이기 때문에 방화벽 오픈이 필요하다.


[6. redmine 웹페이지 접속]

“http://(서버ip):8082” 로 redmine 웹페이지에 접속한다.


*출처 :