Docker Containers

Container technology empowers you to pull up reproducible, documented and complete isolated infrastructures. Axon.ivy fully supports container environments such as Docker, Kubernetes or OpenShift. You can easily customize the configuration of an Axon.ivy engine by using system environment variables or by providing configuration files like the ivy.yaml file.

The following example will override the url of the system database configuration using environment variables:

docker run -e "IVY_SYSTEMDB_URL=jdbc:mysql://db:3306/AxonIvySystemDatabase" ...

Instead of using environment variables, you can simply provide an ivy.yaml file.

1# ivy.yaml
2SystemDb:
3  Url: jdbc:mysql://db:3306/AxonIvySystemDatabase

And let’s run the container with this configuration

docker run -v $(pwd)/ivy.yaml:/etc/axonivy-engine/ivy.yaml ...

Tip

On Windows use %cd%/ivy.yaml instead of $(pwd)/ivy.yaml

For further docker examples have a look at our docker-samples GitHub repository.

Licence

You can provide the licence either by:

  • Packaging it as part of your docker image in the configuration folder:

    ADD licence.lic /etc/axonivy-engine/licence.lic
    
  • Mapping it into the configuration folder:

    docker run -v $(pwd)/licence.lic:/etc/axonivy-engine/licence.lic ...
    
  • Provide it as environment variable IVY_LICENCE:

    Linux:

    export IVY_LICENCE=$(cat <licence.lic>)
    docker run -e IVY_LICENCE=$IVY_LICENCE ...
    

    Windows Powershell:

    set IVY_LICENCE=[string](Get-Content -Path <licence.lic> -raw)
    docker run -e IVY_LICENCE=$IVY_LICENCE ...
    
  • Mapping it as docker secret into file /run/secrets/ivy.Licence

Secrets

You can use Docker Secrets to store passwords. Simply create a file in /run/secrets which has the same name as the configuration entry. For example, to provide SystemDb:Password as secret file you need to create the file /run/secrets/ivy.SystemDb.Password