Docker can be a suited tool to perform conversions in a modular and scalable fashion.
As a first step, test the usage of Docker as command execution as a command.
Due to it's dependencies, 3D content brings a are instalation process where the correct verison of Collada2glTF and Blender has to be installed across the server. Also, some blender plugins may need to be install in near future, bringing complexity and confusion to the instalation process.
Docker can replace all this process and should be test in 3D conversion.
In this first test, use the Command Line to invoke Docker.
In order for 3D conversions work:
- Create one Docker image for blender and one for Collada2glTF command. These should have the proper version and be ready to work
- Make these Docker images available in Docker hub (on Nuxeo account)
- Contribute the correct command that will pull the needed image, make available in Volumes the files to convert.
Feedback from process:
- We need a way to first pull the Docker images for all the converters. At startup in a ansync fashion would be good (but maybe complex to implement).
- In this context Docker worked perfectly. It avoid the need to have a specific installation process. So it is great for the server user and for testing porpuses.
- Taking care of I/O files in every conversion process can be complex, but also can be part of an evolution of the Command Line, making it easy for developers.
- Runing docker can have downsides:
- the Docker variables set on host can influence the outcome of the process
- when the server is runing already in Virtual Machine or Docker, some problems can pop up. On our case, the env variable DOCKER_HOST was set making the docker host a remote machine. This would make that input files on the local machine would get to the docker host, making the conversion not to work.
- Also, in running in Windows on a Virtual Machine is impossible to run Docker for now.
As a summary, Docker or similar virtualization tools show much promisse in making conversions dependecies instalations as simple as installing Docker.
A Docker conversion addon could be created to streamline the usage of docker images and conversions in Nuxeo and even to help on scalability.
As a side note, with the Nuxeo Sever (jsf and web ui free), Docker could be used as a way to scale on Workers, to perform tasks and process events.