None of the Debezium images can run on OpenShift online. The problem is with config directory exposed as VOLUME in Dockerfile.
OpenShift online requires a VOLUME to be mapped to emptyDir or a persistent volume. If it is not mapped then the image will not start due to security limitations. Unfortunately when the config dir is mapped, the applications fails to start because of missing config files.
This problem can be overcome by using configMap with configfiles but definitely not all deployments requires changes in all config files.
The best approach would thus be
- move files fo config dir in Docker image to another dir like config.template
- a startup script will copy all files from config.template to config dir without overwriting those already present
The net result will be
- image will work as a regular image when volume will not be mounted
- if volume is mounted, the user will provide only config files that he wants to modify
- on OpenShift online when emptyDir mapping is provided there will be no issue with starting image
- on any OpenShift the image will run regardless of having volume mount
DBZ-308 debezium/zookeeper:0.5 run failed in OpenShift Container Platform