error during on s3 build by myself

so i’m trying to build s3 plugin (in Docker debian image), the artifact is file libOrthancAwsS3Storage.so, and I map that so file to another docker container (from osimis/orthanc:latest image) as /usr/local/share/orthanc/plugins/libOrthancAwsS3Storage.so.
When I bring up the container it comes across the following error:

orthweb | W0526 02:21:46.325202 main.cpp:864] Loading plugin(s) from: /usr/local/share/orthanc/plugins/libOrthancAwsS3Storage.so
orthweb | E0526 02:21:46.327513 SharedLibrary.cpp:97] dlopen(/usr/local/share/orthanc/plugins/libOrthancAwsS3Storage.so) failed: Error libcrypto++.so.6: cannot open shared object file: No such file or directory
orthweb | E0526 02:21:46.330463 main.cpp:1999] Uncaught exception, stopping now: [Error while using a shared library (plugin)] (code 25)

What did I do wrong with my building process? Here is the Dockerfile i use to build:
https://github.com/digihunch/orthweb/blob/main/plugin-builder/Dockerfile

Regards,

Yi

Hi Yi,

From the look of the error message, the osimis/orthanc container is missing libcrypto++ libraries.

Try running apt-get --assume-yes install libboost-iostreams1.67.0 libcrypto++ in the osimis/orthanc container after copying the plugin across.

(Also, if you are building on a M1 Mac, make sure you add --platform linux/amd64 to your docker build command. I lost a day recently because of that.)

HTH

James

Thanks for the tips James.
I use Docker to build to make sure the building container mirrors the runtime environment, but forgot that those dependencies are needed in the runtime container as well. I added libcrypto+±dev, and that exposed me to the next missing dependency.
With all missing dependencies added, I also have to add the switches mentioned in this other thread. to load the library correctly. That brings the size of libOrthancAwsS3Storage.so to 16MB.

I have yet to test the function of the library file because I will have to build my own image with the additional file (libOrthancAwsS3Storage.so), as well as dependencies. I’ve built a pipeline here on github to build this file and publish to docker hub.
I’ll test the artifact with the custom image.