Artifactory version 6.x to 7.x upgrade with Docker Compose

JFrog Installation & Setup Documentation

Content Type
Installation & Setup

Before you proceed, see System Requirements for information on supported platforms, supported browsers, and other requirements.

In addition, review the Docker requirements.

  1. Stop and remove the current containers.

    Upgrading from Docker run

    docker stop artifactory
    docker rm -f artifactory

    Upgrading from Docker Compose previously available in Bintray

    docker stop artifactory postgresql  nginx
    docker rm -f artifactory postgresql  nginx
  2. Extract the contents of the compressed archive and go to the extracted folder.

    tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-compose.tar.gz

    .env file included within the Docker-Compose archive

    The .env file is used by docker-compose and is updated during installations and upgrades.

    Some operating systems do not display dot files by default. If you make any changes to the file, remember to backup before an upgrade.

  3. Run the config.sh script to setup folders with required ownership.

    ./config.sh
  4. Check that the migration has completed successfully, by reviewing the following files:

    1. migration log: $JFROG_HOME/artifactory/var/log/migration.log

    2. system.yaml configuration: $JFROG_HOME/artifactory/var/etc/system.yaml. This newly created file will contain your current custom configurations in the new format.

    3. Depending on your choices, a selected docker-compose.yaml will be available in the extracted folder. However, there are a few docker-compose templates in the directory templates.You can choose any template and copy it to the extracted folder as docker-compose.yaml .

  5. Manage Artifactory using native Docker Compose commands.

    docker-compose -p rt-postgres -f 
    docker-compose-postgres-9-6-11v.yaml up -d
    docker-compose -p rt up -d
    docker-compose -p rt ps
    docker-compose -p rt down
  6. Access Artifactory from your browser at: http://SERVER_HOSTNAME:8082/ui/.

    For example, on your local machine: http://localhost:8082/ui/

    Reverse Proxy Settings

    If you had a reverse proxy or load balancer configured with your Artifactory 6.x, you will need to create a new reverse proxy configuration and update your reverse proxy settings.

    You can generate a new configuration template by accessing the upgraded Artifactory server UI (by default http://localhost:8082/ui/), navigate to

    Navigate to Administration > Artifactory > General > HTTP Settings to adjust your Reverse Proxy Settings and generate a new configuration template. See Reverse Proxy Settings.HTTP Settings

  7. Check Artifactory Log.

    tail -f $JFROG_HOME/artifactory/var/log/console.log

    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.Configuring Log Rotation for Tomcat

Artifactory version 6.x to 7.x Docker Compose Upgrade Using Docker Volumes
  1. Stop and remove the current Docker containers.

    docker stop artifactory postgresql
    docker rm -f artifactory postgresql
  2. Extract the contents of the compressed archive and go to the extracted folder.

    tar -xvf jfrog-artifactory-<pro|oss|cpp-ce>-<version>-compose.tar.gz
  3. Copy the docker-compose-volumes.yaml file to the extracted folder.

    cp templates/docker-compose-volumes.yaml docker-compose.yaml
  4. Add the entry to the .env file.

    echo -e "JF_SHARED_NODE_IP=$(hostname -i)" >> .env
    echo -e "JF_SHARED_NODE_ID=$(hostname -s)" >> .env
    echo -e "JF_SHARED_NODE_NAME=$(hostname -s)" >> .env

    Avoid duplicating the entry in the .env file.

  5. Remove the following env from the docker-compose.yaml file.

    - JF_SHARED_DATABASE_TYPE=postgresql
    - JF_SHARED_DATABASE_USERNAME=artifactory
    - JF_SHARED_DATABASE_PASSWORD=password
    - JF_SHARED_DATABASE_URL=jdbc:postgresql://postgresql:5432/artifactory
    - JF_SHARED_DATABASE_DRIVER=org.postgresql.Driver

    Migration starts from within the container and a new system.yaml aligning to the migrated data from Artifactory 6.x is created. To leverage this process, remove the env here to ensure that the old connection details are taken from system.yaml because the ENV supercedes the system.yaml entries. You can also choose to update these environment values to the old connection details for the upgrade to be successful.

  6. Manage Artifactory using the native Docker Compose commands.

    docker-compose -p rt up -d
    docker-compose -p rt ps
    docker-compose -p rt down

    Run this command from the extracted folder.

Artifactory version 7.25.5 onwards includes OpenJDK version 11.0.11 and later. TLS 1.0 and TLS 1.1 are disabled by default from OpenJDK 11.0.11 onwards. If your database version does not support TLS 1.2, the Artifactory startup fails.

If you are unable to upgrade your database to a version that supports TLS 1.2 or later, perform the following steps to run Artifactory:

  1. Download the java.security file that has TLS 1.0 and 1.1 enabled.

  2. Create the directory, ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.

    mkdir -p ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java
  3. Copy the java.security file into ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java.

  4. Provide the appropriate permissions to the directory.

    chmod 755 ${JFROG_HOME}/artifactory/var/bootstrap/artifactory/java/java.security

    Artifactory startup takes a backup of the existing java.security file and bootstraps custom java.security into the ${JFROG_HOME}/artifactory/app/third-party/java/conf/security folder.