Walkthrough: Upgrading Data Exchange Framework in Docker
This topic explains how you upgrade Data Exchange Framework (DEF) Container 7.0 to DEF 8.0. DEF 8.0 is compatible with Sitecore 10.3.
Before you upgrade DEF you must back up the current DEF 7.0 container files.
This walkthrough describes how to:
-
Build the Docker images
-
Build the mssql-upgrade image
-
Complete the upgrade
Build the Docker images for Sitecore Container with DEF.
To upgrade DEF, you must build new Docker images.
To build the new images:
-
Download the Sitecore container deployment package for 10.3 from the Sitecore download page. Extract it to your local workstation with the folder structure intact. Name the folder, for example DEF 103.
-
Download the DEF container deployment package for 8.0 package from the Sitecore download page. Extract it to your local workstation, in the folder where you extracted the Sitecore 10.3 container package, with the folder structure intact. For example, copy it to the DEF 103 folder.
-
Go to the current Sitecore 10.2 Container deployment folder, copy the databases from
mssql-datafolder, and paste it in Sitecore 10.3mssql-datafolder. For example, copy it toC:/DEF103/mssql-data. -
Open PowerShell window with the Run as Administrator option, go to the Sitecore 10.3 Container directory, and to deploy Sitecore 10.3 container, run the following commands:
-
docker-compose build -
docker-compose up
-
-
Make sure that Sitecore Container 10.3 is up and and running successfully.
Build the mssql-upgrade image
To upgrade a Sitecore solution that has DEF installed, you must build a custom mssql-upgrade image.
To build the image:
-
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.
-
Create a Docker file and name it Dockerfile. In the file, add instructions to point its base image to the 10.3 mssql-upgrade image. The following is an example of the file:
RequestResponseARG BASE_IMAGE=ideftdevacr.azurecr.io/sxp/sitecore-xp1-mssql-upgrade:10.3.0.006572.994-10.0.17763.2183-ltsc2019-unstable FROM ${BASE_IMAGE} SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] # Add DEF module COPY <DEF Module Upgrade Resource file path> "C:\data\ResourceItems\10.3.0\modules\"NoteIn the Docker file, ensure that the
ARG BASE_IMAGEvalue is pointing to Sitecore 10.3 mssql-upgrade image. -
In a PowerShell window with administrator rights, navigate to the same path as the Docker file, and run the following command:
RequestResponsedocker build . -t “<imageName>:<AnyAvailablePortNo>” commandFor example:
docker build . -t "upgradedefimage:3636. -
Ensure that the image has been created.
Complete the upgrade
To complete the upgrade:
-
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>. -
Navigate to the
Compose/<version>/upgrade/<topology>folder, and run thecompose-init.ps1script. 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.NoteFor 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.
-
In the same directory as the
compose-init.ps1script, open thecompose.upgrade.ymlfile, and the new image value (for example,image:upgradedefimage:3636) -
Ensure that the mssql container is up and running.
-
To finalize the upgrade, run the following command:
RequestResponsedocker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env up -
To check the status of the upgrade, run this command:
RequestResponseRun “docker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env ps -
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:
RequestResponsedocker-compose.exe -f .\docker-compose.upgrade.yml --env-file .\upgrade.env down