Running JFrog Artifactory OSS 7 with Docker

Umut Boz
4 min readSep 15, 2023

--

JFrog Artifactory the world’s most advanced undisputed repository manager. With this repository manager, servicing a single place for manage all their binary artifacts efficiently by JFROG. OSS is open source project was version of JFrog Artifactory Server. You can now use JFrog Artifactory OSS 7 version. How does? Let’s see together.

Repository Manager

Repository manager is a dedicated server application designed to manage binary components for the application that we build.

The best way to use any build tool, be it Maven or Gradle, is to use a repository manager.

Installation

When JFrog released Artifactory 7 they changed the way installation. we need to download a TAR file, first followed by Docker Compose. For this link see at below 👇.

What we need to do now is not to stand up the images, but to run the environment provided for us with the parameters and configure the docker containers.

What your downloads directory looks like ?

.
├── .env
├── docker-compose.yml
└── volumes
└── artifactory
└── var
└── etc
└── system.yaml

.env

This file contains environment variables used by the docker-compose yaml files.

## Docker registry to fetch images from
DOCKER_REGISTRY=releases-docker.jfrog.io

## Version of artifactory to install
ARTIFACTORY_VERSION=7.63.14

## The Installation directory for Artifactory. IF not entered, the script will prompt you for this input. Default [$HOME/.jfrog/artifactory]
ROOT_DATA_DIR=/Users/**/.jfrog/artifactory

## Router external port mapping. This property may be overridden from the system.yaml (router.entrypoints.externalPort)
JF_ROUTER_ENTRYPOINTS_EXTERNALPORT=8082

## Nginx logrotation configuration
NGINX_LOG_ROTATE_COUNT=
NGINX_LOG_ROTATE_SIZE=

Config.sh file Perform

When the config.sh file is run, step-by-step configuration of Postgres db or another option is performed. My preference is postgres db for installation.

After this process, the root directory you selected in the .env file is created on your computer and the postgres db docker image is pulled.

And as a result of the process, an iDocker Compose YAML file is produced.

version: '3'
services:
artifactory:
image: ${DOCKER_REGISTRY}/jfrog/artifactory-oss:${ARTIFACTORY_VERSION}
container_name: artifactory
environment:
- JF_ROUTER_ENTRYPOINTS_EXTERNALPORT=${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT}
ports:
- ${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT}:${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT} # for router communication
- 8081:8081 # for artifactory communication
volumes:
- ${ROOT_DATA_DIR}/var:/var/opt/jfrog/artifactory
- /etc/localtime:/etc/localtime:ro
restart: always
logging:
driver: json-file
options:
max-size: "50m"
max-file: "10"
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
docker-compose -p  rt up -d

After running the docker compose up -d command, the jfrog artifactory-oss image of docker is pulled.

Finally

https://jfrog.com/help/r/jfrog-installation-setup-documentation/install-artifactory-single-node-with-docker-compose

docker compose.yaml

version: '3'
services:
artifactory:
image: ${DOCKER_REGISTRY}/jfrog/artifactory-oss:${ARTIFACTORY_VERSION}
container_name: artifactory
environment:
- JF_ROUTER_ENTRYPOINTS_EXTERNALPORT=${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT}
ports:
- ${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT}:${JF_ROUTER_ENTRYPOINTS_EXTERNALPORT} # for router communication
- 8081:8081 # for artifactory communication
volumes:
- ${ROOT_DATA_DIR}/var:/var/opt/jfrog/artifactory
- /etc/localtime:/etc/localtime:ro
restart: always
logging:
driver: json-file
options:
max-size: "50m"
max-file: "10"
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000

Refer to this JFrog wiki on docker-compose installation and download the Artifactory-Oss tar from this link. You might get the Artifactort-pro tar, download it and change the image to artifactory-oss in the docker-compose.yaml. One more thing, Artifactory oss if 7.x version then 8081 and 8082 ports should be opened.

docker images

--

--