We have a custom Java microservice that builds dynamic models that are sent to our Gurobi Compute Server instance. The Java service is deployed via a Linux OpenJDK11 Docker image.
In order to keep our Docker container as light as possible, the Dockerfile performs a few steps to provide the microservice with the binary Gurobi files that the Java service requires:
- The libgurobi.so.10.0 and libGurobiJni100.so files from the standard Linux distribution are copied to the container and placed in a directory to be picked up by the Linux LD_LIBRARY_PATH.
- The Dockerfile also renames the libgurobi.so.10.0 file to libgurobi100.so so it can be directly referenced by the Java microservice.
This setup works for previous version (9.1.2 and 9.5.2) but gives the following error after upgrading to 10.0:
gurobi.GRBException: error:0A000126: SSL routines::unexpected eof while reading (code35, command POST https://exampleEndpoint.com/api/v1/cluster/jobs)
I am able to run ALL versions locally on my Windows machine, which is referencing the gurobiXX.dll file matching the correct version number (XX).
It looks like the Linux library is attempting to send a POST request to https://exampleEndpoint.com/api/v1/cluster/jobs but I believe this endpoint only accepts GET requests.
Edit: this occurs when the env.start() method is called.
GRBEnv env = new GRBEnv(true);
Please sign in to leave a comment.