Before you proceed with the installation, review the system requirements.
Additionally, review the Docker requirements.
Docker Requirements
For Docker and Docker Compose installations, JFrog services require Docker 20.10.10 and above, and Docker Compose v1.24 and above to be installed on the machine on which you want to run on.
For install instructions, refer to the Docker and the Docker Compose documentation.
Installation Steps
Complete the following steps to install the product.
Create your Artifactory home directory and an empty
system.yaml
file. The user creating the folder should be the user running the docker run.Note
The following steps assume that
$JFROG_HOME
environment variable is created in the system. For the correct location of$JFROG_HOME
, see JFrog Product Directory Structure.mkdir -p $JFROG_HOME/artifactory/var/etc/ cd $JFROG_HOME/artifactory/var/etc/ touch ./system.yaml chown -R 1030:1030 $JFROG_HOME/artifactory/var
Run the following command in addition if you are using Docker on a Mac machine.
chmod -R 777 $JFROG_HOME/artifactory/var
Configure a connection to external database.
For Non-Production environment, you can start an PostgreSQL container on the same machine as Artifactory Container:
docker run --name postgres -itd -e POSTGRES_USER=artifactory -e POSTGRES_PASSWORD=password -e POSTGRES_DB=artifactorydb -p 5432:5432 library/postgres
Configure the
system.yaml
file with the database configuration details:shared: database: driver: org.postgresql.Driver type: postgresql url: jdbc:postgresql://host.docker.internal:5432/artifactorydb username: artifactory password: password
Note
The database connection URL may vary depending on the Container Engine in use. Please ensure you are using the correct URL for your specific environment.
Customize the product configuration (optional) including Java Opts, and filestore.
Note
For Docker installations, verify that the host's ID
shared.node.id
and IPshared.node.ip
are added to thesystem.yaml
.If these are not manually added, they are automatically resolved as the container's IP, meaning other nodes and services will not be able to reach this instance.
Start the Artifactory container using the process that is relevant for your system.
You can fetch the version number from here.
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.7
For installation of Artifactory Open Source, replace the Container Image with
artifactory-oss
.For installation of Artifactory Community Edition for C/C++, replace the Container Image with
artifactory-cpp-ce
.Manage Artifactory using native Docker commands.
docker ps docker stop artifactory
Access Artifactory from your browser at:
http://SERVER_HOSTNAME:8082/ui/
For example, on your local machine:
http://localhost:8082/ui/
Check the Artifactory log.
docker logs -f artifactory
Configure log rotation of the console log
The
console.log
file can grow quickly since all services write to it. For more information, see configure the log rotation.Redhat UBI Micro base image
In an effort to provide a more secure Artifactory image, Artifactory now uses the Redhat UBI Micro base image. Some of the tools that were available in the Artifactory image are not available in this more secure image. For more information, see JFrog Products Container Base Image.
Artifactory Post-Installation Steps
Once the installation is complete, complete the following tasks.
Change the default admin password. The default user will have the following credentials predefined in the system:
User: admin, Password: password
Make sure you have applied your licenses
Continue to configure the system using the Artifactory Product Configuration
Configure a reverse proxy (optional for Docker Registry)
You can run Artifactory with one of the supported HTTP serversset up as a front end of each node.