이 문서는 Docker를 사용하여 Artifactory를 설치하는 방법을 공유하기 위해 작성되었습니다.



설치환경

  • Docker : v26.1.3
  • Artifactory : artifactory-oss-7.90.5
  • PostgreSQL : 13


Docker 요구사항

Docker를 사용하여 Artifactory를 설치할 때 Docker v20.10.10 이상이 실행하려는 머신에 설치되어 있어야 합니다.


JFrog Home 환경 변수 설정 

JFrog Home 환경 변수를 설정합니다.

export JFROG_HOME=/opt/jfrog


Artifactory 디렉토리 설정

Artifactory 홈 디렉토리와 빈 디렉토리를 만듭니다. (폴더를 만드는 사용자는 docker run을 실행하는 사용자여야 합니다.)

mkdir -p $JFROG_HOME/artifactory/var/etc/
cd $JFROG_HOME/artifactory/var/etc/
touch ./system.yaml
chown -R 1030:1030 $JFROG_HOME/artifactory/var


Mac 컴퓨터에서 Docker를 사용하는 경우 다음 명령을 추가로 실행합니다. 

chmod -R 777 $JFROG_HOME/artifactory/var


호스트 ID, IP 설정

  • shared.node.id (호스트ID) : 노드나 인스턴스를 식별하는 고유한 ID입니다.
  • shared.node.ip (호스트IP) : 노드의 IP 주소로, 외부에서 해당 노드에 접근할 때 사용됩니다.

이 두 값이 system.yaml에 제대로 설정되어야 Docker 컨테이너가 다른 노드 및 서비스와 정상적으로 통신할 수 있습니다. 수동으로 설정하지 않으면, 컨테이너의 IP 주소가 자동으로 할당되어 외부 연결이 어려워질 수 있습니다.

JFrog에서 제공하는 템플릿을 참고하여 system.yaml을 구성할 수 있습니다. (system.basic-template.yaml, system.full-template.yaml)

shared:
  node: 
    id: test01
    ip: 192.168.0.1


데이터 베이스 연동 (선택 사항)

 Artifactory에는 기본으로 내장된 Derby 데이터베이스가 제공됩니다.

그러나 운영 환경에서는 외부 PostgreSQL 데이터베이스를 사용할 것을 권장합니다.

system.yaml 파일을 사용하여 데이터베이스 설정을 구성할 수 있습니다.


system.yaml 파일에 database 정보를 입력합니다. 

  • allowNonPostgresql : JFrog Artifactory는 기본적으로 PostgreSQL 데이터베이스와 함께 사용하도록 설정되어 있습니다.
    하지만 다른 데이터베이스 (예: MySQL, Oracle 등)을 사용하고자 할 경우, 이 설정을 'true'로 변경해야 합니다. (default:false)
$ vi system.yaml

  ## Database Configuration
  database:
    ## To run Artifactory with any database other than PostgreSQL allowNonPostgresql set to true.
    #allowNonPostgresql: false

    ## One of mysql, oracle, mssql, postgresql, mariadb
    ## Default Embedded derby

    ## Example for postgresql
    type: postgresql
    driver: org.postgresql.Driver
    url: "jdbc:postgresql://<your db url, for example: localhost:5432>/artifactory"
    username: artifactory
    password: password


Artifactory 설치

아래 링크에 접속하여 제품 릴리즈 버전 번호를 확인할 수 있습니다.


Artifactory는 기본적으로 다음과 같은 외부 네트워크 포트를 사용합니다. 

  • 8081
  • 8082

Artifactory Pro

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:<version>

For example:

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:7.90.5

Artifactory Open Source

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-oss:<version>

For example:

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-oss:7.90.5

Artifactory Community Edition for C/C++

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-cpp-ce:<version>

For example:

docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-cpp-ce:7.90.5


Artifactory 관리

Docker 기본 명령을 사용하여 Artifactory를 관리합니다.

docker ps
docker stop artifactory


Artifactory 로그 확인

다음 명령을 사용하여 Artifactory 로그를 확인합니다.

docker logs -f artifactory


Artifactory 설정

Artifactory를 설정하기 위해 http://localhost:8082/ui/ 으로 접속합니다.

초기 계정 정보는 다음과 같습니다.

  • ID : admin
  • PW : password
  • 레이블 없음