PlantUML

PlantUML이 GitLab에서 활성화되고 구성되면 스니펫, 위키 및 리포지토리에서 생성 된 AsciiDoc 및 Markdown 문서에서 간단한 다이어그램을 만들 수 있다.

1. PlantUML 서버

GitLab에서 PlantUML을 활성화하기 전에 다이어그램을 생성 할 PlantUML 서버를 직접 설정해야 한다.

1.1. Docker

Docker를 사용하면 다음과 같이 컨테이너를 실행할 수 있다.

docker run -d --name plantuml -p 8080:8080 plantuml/plantuml-server:tomcat
  • Docker에서 GitLab을 실행할 때는 PlantUML 컨테이너에 액세스 할 수 있어야 하며, 가장 쉬운 방법은 Docker Compose 를 사용하는 것이다.

  • Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기위한 도구로 YAML 파일을 사용하여 응용 프로그램 서비스를 구성한다. 그러고 나서 단일 명령으로 구성에서 모든 서비스를 작성하고 시작한다.

  • 간단한 docker-compose.yml파일은 다음과 같다.

version: "3" services: gitlab: image: 'gitlab/gitlab-ce:12.2.5-ce.0' environment: GITLAB_OMNIBUS_CONFIG: | nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n proxy_cache off; \n proxy_pass http://plantuml:8080/; \n}\n" plantuml: image: 'plantuml/plantuml-server:tomcat' container_name: plantuml
  • PlantUML은 URL에서 GitLab에 액세스 할 수 있다. http://plantuml:8080/.

2. GitLab 설정을 사용하여 로컬 PlantUML에 액세스 할 수 있도록 설정

  • PlantUML 서버는 서버에서 로컬로 실행되므로 외부에서 액세스할 수 없으며 따라서 외부 PlantUML 호출을 잡아서 로컬 서버로 리디렉션 해야 한다.

  • 리디렉션을 활성화하려면 /etc/gitlab/gitlab.rb에서 아래 내용을 포함시키면 된다.
    설정에 따라 각 호출을 로컬 PlantUML 서버https://gitlab.example.com/-/plantuml/에서 http://plantuml:8080/또는 http://localhost:8080/plantuml/로 리디렉션 시킨다.

  • 리디렉션을 활성화하려면 /etc/gitlab/gitlab.rb에 아래와 같이 추가한다.

# Docker deployment nginx['custom_gitlab_server_config'] = "location /-/plantuml/ { \n proxy_cache off; \n proxy_pass http://plantuml:8080/; \n}\n" # Built from source nginx['custom_gitlab_server_config'] = "location /-/plantuml { \n rewrite ^/-/(plantuml.*) /$1 break;\n proxy_cache off; \n proxy_pass http://localhost:8080/plantuml; \n}\n"
  • 변경 사항을 활성화하려면 다음 명령을 실행한다.

 

3. Enable PlantUML

PlantUML을 활성화하고 지정한 URL을 설정한다.