Docker) Jira 배포 가이드

사전 준비

배포 정보는 아래와 같습니다.

  • Jira 9.12.15(JDK 17)
  • PostgreSQL 15.7

docker-compose.yml

services:
  jira:
    image: atlassian/jira-software:9.12.15-jdk17
    container_name: JIRA
    environment:
      - JVM_MINIMUM_MEMORY=4G
      - JVM_MAXIMUM_MEMORY=4G
      - ATL_PROXY_PORT=443
      - ATL_PROXY_NAME=jira.zlcus.com
      - ATL_TOMCAT_SCHEME=https
      - TZ=Asia/Seoul
    volumes:
      - ./data/app:/var/atlassian/application-data/jira
      - ./logs:/data/jira-log
      - ./log4j2.xml:/opt/atlassian/jira/atlassian-jira/WEB-INF/classes/log4j2.xml
      - /jira-prod-shared:/shared
    networks:
      - atlassian
      - nginx
    restart: always
    depends_on:
      - jira-db
  jira-db:
    image: postgres:15.7
    container_name: JIRA-PROD-DB
    environment:
      - POSTGRES_PASSWORD=jiradb
      - PGDATA=/var/lib/postgresql/data/pgdata
      - TZ=Asia/Seoul
      - PGTZ=Asia/Seoul
    volumes:
      - ./data/db:/var/lib/postgresql/data/pgdata
    networks:
      - atlassian
    restart: always
networks:
  atlassian:
    external: true
  nginx:
    external: true

Nginx를 별도로 사용하기에 포트 노출없이 컨테이너를 생성합니다.

Environment에 대한 정보는 Atlassian 공식 가이드를 참고하여 작성합니다.

💡
Jira 내부 커스텀된 파일이 존재하면 volumes에 매핑하여 사용합니다.
(위 예제에서는 log4j2.xml 파일이 해당되며 별도 로그 디렉토리를 지정하였습니다.)

Atlassian 공식 이미지 내부 JAR 파일의 취약점으로 커스텀하여 사용하길 원한다면 아래 Atlassian 공식 레포지토리를 참고하여 이미지를 빌드하시면 됩니다.

Bitbucket

초기 배포

컨테이너를 배포하고 첫 서비스라면 DB 설정 또한 해야합니다.

# DB 컨테이너 접속
docker compose exec -it jira-db bash

# postgres 계정으로 전환
su postgres

# PostgreSQL 접속
psql

Jira DB 생성 및 DB 계정 생성

CREATE USER <JIRA-DB-USERNAME> PASSWORD '<JIRA-DB-USER-PASSWORD>';

CREATE DATABASE <JIRA-DB-NAME> WITH OWNER <JIRA-DB-USERNAME> ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

GRANT ALL PRIVILEGES ON DATABASE <JIRA-DB-NAME> TO <JIRA-DB-USERNAME>;

이후 과정은 Jira 서비스 구성 및 설치 가이드를 참고하여 초기 설정을 진행하면 됩니다.