This section explains how to completely configure a WorkflowGen upgrade container. Some options are configured as environment variables and others are passed directly to the entry point script. It is available as Linux and Windows images.
This image is not designed to be taken as a base image.
Environment variables
In the case of the upgrade image, the environment variables are arguments that you should not have to change often when upgrading WorkflowGen. That way, you can easily pass a file that defines those variables and reuse it between runs. Here's the list of available environment variables with their descriptions:
Variables
Description & values
WFGEN_UPGRADE_UPDATE_PACKAGES_PATH
A path local to the container where the update packages are located. See the Usage page of this section for more information and examples.
Default value:
Windows: C:\wfgen\updatepackages
Linux: /mnt/updatepackages
WFGEN_UPGRADE_UPDATE_PACKAGE_FILE_NAME
The name of the update package archive to pick in the update packages path for this upgrade. If no value is provided, <ToVersion>/update.zip will be picked where <ToVersion> is passed as an argument to the container.
WFGEN_DATABASE_CONNECTION_STRING
Required variable
The connection string to the WorkflowGen database. The user passed must have the rights to modify the schema of the database.
WFGEN_UPGRADE_EXCLUDE_FILES
Globally excluded files when copying App_Data files from the update package to your App_Data volume, and when copying wfapps files from the update package to your wfapps volume. The elements in this list must be comma-separated (e.g.myfile.txt,myfile2.txt).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded files in Windows version are recursive.
You can't use sub-paths in the Windows version.
WFGEN_UPGRADE_EXCLUDE_FOLDERS
Globally excluded folders when copying App_Data files from the update package to your App_Data volume, and when copying wfapps files from the update package to your wfapps volume. The elements in this list must be comma-separated (e.g.myfolder,myfolder).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded folders in the Windows version are recursive.
You can't use sub-paths in the Windows version.
WFGEN_UPGRADE_APPDATA_EXCLUDE_FILES
Globally excluded files when copying App_Data files from the update package to your App_Data volume. The elements in this list must be comma-separated (e.g.myfile.txt,myfile2.txt).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded files in the Windows version are recursive.
You can't use sub-paths in the Windows version.
WFGEN_UPGRADE_WFAPPS_EXCLUDE_FILES
Globally excluded files when copying wfapps files from the update package to your wfapps volume. The elements in this list must be comma-separated (e.g.myfile.txt,myfile2.txt).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded files in the Windows version are recursive.
You can't use sub-paths in the Windows version.
WFGEN_UPGRADE_APPDATA_EXCLUDE_FOLDERS
Globally excluded folders when copying App_Data files from the update package to your App_Data volume. The elements in this list must be comma-separated (e.g. myfolder,myfolder).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded folders in the Windows version are recursive.
You can't use sub-paths in the Windows version.
WFGEN_UPGRADE_WFAPPS_EXCLUDE_FOLDERS
Globally excluded folders when copying wfapps files from the update package to your wfapps volume. The elements in this list must be comma-separated (e.g. myfolder,myfolder).
✏️ Notes:
There is no distinction between files and folders in the Linux version.
Excluded folders in the Windows version are recursive.
You can't use sub-paths in the Windows version.
Script parameters
Script parameters define options to pass as arguments directly to the upgrade container. These arguments are more likely to be defined each time you run the container, which is why they are not in environment variables. Here's the help file of the entrypoint script. It describes all of the parameters and their groupings, and provides a few examples:
NAME
/usr/local/bin/docker-entrypoint.ps1
SYNOPSIS
Entrypoint script for the upgrade container.
SYNTAX
/usr/local/bin/docker-entrypoint.ps1 -FromVersion <String> -ToVersion <String> [-RemainingArgs <Object>] [-Offline] [<CommonParameters>]
/usr/local/bin/docker-entrypoint.ps1 -Command -RemainingArgs <Object> [<CommonParameters>]
/usr/local/bin/docker-entrypoint.ps1 -Help [<CommonParameters>]
DESCRIPTION
This script will merge files for the App_Data and wfapps directory between
the upgrade package of the destination version and the current installation
ones (passed as volumes).
It will also launch the required SQL migration scripts in order from lowest
to highest version. Make sure to use a SQL account that has the proper
rights to modify the database tables.
The "Files", "LogFiles" and "Ws" subfolders in App_Data are always ignored.
You don't have to specify them in the exclusion environment variables.
PARAMETERS
-FromVersion <String>
The current version of WorkflowGen. The starting version of the
migration.
Required? true
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-ToVersion <String>
The version to which you want to migrate the current one.
Required? true
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-Command [<SwitchParameter>]
Indicates to execute a command inside the container. This is used in
conjunction with RemainingArgs
Required? true
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-RemainingArgs <Object>
Commands to execute inside the container. If versions are not passed, it is
executed at the beginning and then it exits after the execution. If
versions are passed, it is executed at the end of the script.
Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-Help [<SwitchParameter>]
Get full help for this script.
Required? true
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-Offline [<SwitchParameter>]
If provided, the script will not try to download the update package.
This means that you have to provide the update package from a volume.
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable.
For more information, see about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
NOTES
File name: docker-entrypoint.ps1
requires -Version 7.0
-------------------------- EXAMPLE 1 --------------------------
PS > docker container run -i "..." advantys/workflowgen-upgrade:latest-ubuntu-18.04 -Help
Displays the full help for the container.
-------------------------- EXAMPLE 2 --------------------------
PS > docker container run -i "..." advantys/workflowgen-upgrade:latest-ubuntu-18.04 -Command dir /mnt/appdata
This executes an arbitrary command inside the container. It can be useful
for debugging network issues or other problems prior to the migration.
-------------------------- EXAMPLE 3 --------------------------
PS > docker container run -i "..." advantys/workflowgen-upgrade:latest-ubuntu-18.04 -FromVersion 7.14.10 -ToVersion 7.18.2
This will launch the migration process to upgrade WorkflowGen from version
7.14.10 to the 7.18.2 version.
-------------------------- EXAMPLE 4 --------------------------
PS > docker container run -i "..." advantys/workflowgen-upgrade:latest-ubuntu-18.04 -FromVersion 7.14.10 -ToVersion 7.18.2 dir /mnt/appdata
This will launch the migration process to upgrade WorkflowGen from version
7.14.10 to the 7.18.2 version. In addition, it will execute an arbitrary command
at the end of the migration process.
Using an external configuration manager
Some popular configuration managers support Docker containers out-of-the-box. You would use an external configuration manager only for environment variables definition. Here are a few links to their specific documentation to get you started: