이 문서는 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