Walkthrough: Upgrading Data Exchange Framework to version 7.0 in Docker


How to upgrade Data Exchange Framework to version 7.0 in a container deployment in Docker.

This topic explains how you upgrade Data Exchange Framework (DEF) Container 6.0 to DEF 7.0. DEF 7.0 is compatible with Sitecore 10.2.


Before you upgrade DEF you must back up the current DEF 6.0 container files.

This walkthrough describes how to:

  • Build the Docker images

  • Build the mssql-upgrade image

  • Complete the upgrade

To upgrade DEF, you must build new Docker images.

To build the new images:

  1. Download the Sitecore container deployment package for 10.2 from the Sitecore download page. Extract it to your local workstation with the folder structure intact. Name the folder, for example DEF 102.

  2. Download the DEF container deployment package for 7.0 package from the Sitecore download page. Extract it to your local workstation, in the folder where you extracted the Sitecore 10.2 container package, with the folder structure intact. For example, copy it to the DEF 102 folder.

  3. Go to the current Sitecore 10.1 Container deployment folder, copy the databases from mssql-data folder, and paste it in Sitecore 10.2 mssql-data folder. For example, copy it to C:/DEF102/mssql-data.

  4. Open PowerShell window with the Run as Administrator option, go to the Sitecore 10.2 Container directory, and to deploy Sitecore 10.2 container, run the following commands:

    • docker-compose build

    • docker-compose up

  5. Make sure that Sitecore Container 10.2 is up and and running successfully.

To upgrade a Sitecore solution that has DEF installed, you must build a custom mssql-upgrade image.

To build the image:

  1. On the download page for Resource files for Modules, download the DEF Module Upgrade Resource file, and extract it to your local workstation with the structure intact.

  2. Create a Docker file and name it Dockerfile. In the file, add instructions to point its base image to the 10.2 mssql-upgrade image. The file, for example, will look like this:

    ARG BASE_IMAGE=ideftdevacr.azurecr.io/sxp/sitecore-xp1-mssql-upgrade:
    SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
    # Add DEF module
    COPY <DEF Module Upgrade Resource file path> "C:\data\ResourceItems\10.2.0\modules\"


    In the Docker file, ensure that the ARG BASE_IMAGE value is pointing to Sitecore 10.2 mssql-upgrade image.

  3. In a PowerShell window with administrator rights, navigate to the same path as the Docker file, and run the following command:

    docker build . -t “<imageName>:<AnyAvailablePortNo>” command

    For example: docker build . -t "upgradedefimage:3636.

  4. Ensure that the image has been created.

To complete the upgrade:

  1. In your local machine, in a PowerShell window, navigate to the DEF container deployment folder. Navigate to the upgrade folder for the Windows version and topology you are using, for example Compose/<version>/upgrade/<topology>.

  2. Navigate to the Compose/<version>/upgrade/<topology> folder, and run the compose-init.ps1 script. This script updates the environment configuration file with the appropriate values for all the environment variables, including the SQL username, SQL password, SQL Server address, and the Sitecore license file.


    For more information about running the script to prepare for the deployment, see the Sitecore Installation Guide for Developer Workstation with Containers on the Sitecore download page.

  3. In the same directory as the compose-init.ps1 script, open the compose.upgrade.yml file, and the new image value (for example, image:upgradedefimage:3636)

  4. Ensure that the mssql container is up and running.

  5. To finalize the upgrade, run the following command:

    docker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env up
  6. To check the status of the upgrade, run this command:

    Run “docker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env ps
  7. When the upgrade process is completed, you can clean up your environment. If you ran the upgrade container in Docker Compose, from the Docker Compose folder for the topology that you upgraded, run the following PowerShell cmdlet:

    docker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env down