본문 바로가기
Linux/Shell
2022.01.24 16:30

레드마인 4.2.3 도커로 돌려보자.

다물칸 주소복사
조회 수 90 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
구분 팁&트릭
출처 내가작성

필자는 Postgresql이 미리 Docker로 실행되어 있어서 redmine이라는 데이터베이스를 생성한 후, 진행하였다. 

리눅스는 CentOS7을 사용하였으며, Home디렉토리에 redmine폴더를 생성한 후, 들어가자. 

 

구글에서 "Redmine Docker"로 검색하여 나온 레드마인 공식 Docker 홈페이지에서 Bullseye기반으로 동작하는 것을 찾아 실행하였다.

https://hub.docker.com/_/redmine

https://github.com/docker-library/redmine/blob/5ceec0a28815d3a9ff740439bb5f1f8bd764290b/4.2/Dockerfile

위 스크립트를 "Dockerfile"을 생성하여 저장한 후, 링크에서 4.2폴더로 들어가면 "Docker-Entrypoint.sh" 파일이 있는데 스크립트를 복사해서 동일한 이름으로 저장한다. 

 

export IMAGE_NAME=redmine
export SOURCE_VER=4.2

docker rmi -f $IMAGE_NAME:$SOURCE_VER
docker build . --tag $IMAGE_NAME:$SOURCE_VER

위 코드를 복사해서 "build.sh" 파일로 저장한다.

 

export IMAGE_NAME=redmine
export SOURCE_VER=4.2

docker rm -f $IMAGE_NAME
docker run -d --name $IMAGE_NAME --net bridge --restart=always \
  -v /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro \
  -e REDMINE_DB_POSTGRES=192.168.0.40 \
  -e REDMINE_DB_PORT=33000 \
  -e REDMINE_DB_USERNAME=postgres \
  -e REDMINE_DB_DATABASE=redmine \
  -e REDMINE_DB_PASSWORD=password \
 -p 40080:3000 \
 $IMAGE_NAME:$SOURCE_VER

위 코드를 복사해서 "run.sh" 파일로 저장한다.

환경정보 중 "REDMINE_DB_POSTGRES"와 "REDMINE_DB_PORT"는 각각 PostgreSQL Docker가 실행중인 호스트와 포트를 입력한다.

"REDMINE_DB_DATABASE"는 데이터베이스 이름, "REDMINE_DB_USERNAME"와 "REDMINE_DB_PASSWORD"는 각각 PostgreSQL의 사용자 이름과 패스워드를 입력한다. 포트는 Docker내부에서는 3000번 포트를 외부에서는 40080으로 매핑하였다. 

 

"chmod +x *.sh"명령을 이용해서 실행권한을 준다. 

docker빌드를 위해 "./build.sh" 명령으로 빌드한다.

"./run.sh" 명령으로 도커를 실행한다. 

"docker logs -f redmine" 명령으로 제대로 실행되는지 확인한다.

정상적으로 실행하면 아래와 같이 로그가 표시된다.

 

== 20200826153402 AddTotpToUser: migrated (0.0008s) ===========================

[2022-01-24 14:10:24] INFO  WEBrick 1.6.1
[2022-01-24 14:10:24] INFO  ruby 2.7.5 (2021-11-24) [x86_64-linux]
[2022-01-24 14:10:24] INFO  WEBrick::HTTPServer#start: pid=1 port=3000

 

실제 접속은 192.168.0.40:40080으로 접속하면 접속이 된다.