Deploy CAE using Docker
Precondition: a Linux machine having docker installed
Docker
Pull Docker image from our public docker registry
docker login --username MyCredentials --password MyPassword https://docker-registry-public.davidsystems.com
docker pull docker-registry.davidsystems-public.com/cae:latest
As an alternative you could also import a docker image from a file we provide.
docker import cae.tar.gzip
Remove previously running container (optionally)
docker stop cae
docker rm cae
Run container with CAE
docker run -d --name cae -p 8888:80 docker-registry-public.davidsystems.com/cae:latest
The CAE container is exposed on port 8888 for HTTP.
To handle HTTPS we recommend to run it behind a reverse-proxy that is doing SSL-offloading.
Adapt Settings Manually
Currently there are two options to adapt the settings files in the container
Edit the settings directly in the container
CODEdocker exec -it cae /bin/sh apk add nano nano /user/share/nginx/html/assets/settings.jsonOverwrite the settings files using the docker cp command
CODEdocker cp ./mySettings.json cae:/usr/share/nginx/html/assets/settings.json
Automatically Copying Settings Files From Host At Container Startup
(1) Create a docker volume
docker volume create caeVol
This creates a docker volume named caeVol which is mapped to folder /var/lib/docker/volumes/caeVol/_data.
(2) Copy your setting files to the volume on the host
settings.json
(3) Mount the volume when starting a container instance
docker run -d --name cae -p:8888:80 -v caeVol:/data docker-registry-public.davidsystems.com/cae:latest
This uses the volume and maps it to /data inside the container.
The container checks for settings files on startup and uses them to overwrite the ones delivered with the docker image.
Using Environment Variables for Configuration of CAE Docker Container
As an alternative to modifying and injecting the settings.json file you can also use environment variables.
The name of the environment variable must start with “CAE__” and match the names inside the settings.json file.
Double underscores between names are used to map the hierarchies inside settings.json.
Square brackets are used to reference array elements.
Name postfixes are used to specify variable types different from string, e.g. “:I" for integer or “:B” for boolean.
Examples:
CAE__variables__basePath=https://dpe.davidsystems-test.com:7878/DpeWebApplication
CAE__caeSettings__contentManagerUrl=https://www.spiegel.de
CAE__caeSettings__importViaPostMessageApi__origins[0]=http://bla
CAE__caeSettings__importViaPostMessageApi__origins[1]=http://bli
CAE__test__bla=bli
CAE__test__blo:I=123