How to build a Docker Image in Matlab with Additional Packages

8 views (last 30 days)
I have a function that works. I am able to dockerize it without adding additional packages, but when i add additional packages i get error messages.
mpsResults = compiler.build.productionServerArchive ('DockerFunction_ToTest_Reading_Inserting_Into_AWS.m')
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages',"postgresql-42.7.0.jar")
I have 2 questions - 1) What path does Matlab expect my JAR file to be in, it is in the current (pwd) director 2) How can i mention specific path in the above command ?
I tried the following variations of adding the Additional Package none worked -
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages','postgresql-42.7.0.jar')
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages','\\gcnms101.ds.givaudan.com\HomeDirL$\sivar\Documents\Rahul\ATOM 3\Mfiles New\ATOM 3 APIs\postgresql-42.7.1.jar')
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages','C:\Program Files\MATLAB\R2023a\java\jar\postgresql-42.7.0.jar')
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages','C:/Program Files/MATLAB/R2023a/java/jar/postgresql-42.7.0.jar')
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages',"./postgresql-42.7.0.jar")
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages',"postgresql-42.7.0.jar")
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages',"C:/Program Files/MATLAB/R2023a/java/jar/postgresql-42.7.0.jar")
compiler.package.microserviceDockerImage(mpsResults,'ImageName','dockertotestconnectiontoaws','AdditionalPackages',"C:/Rahul/postgresql-42.7.0.jar")

Accepted Answer

Kojiro Saito
Kojiro Saito on 23 Feb 2024
You can add additional files with AdditionalFiles of compiler.build.ProductionServerArchiveOptions.
functionFile = 'DockerFunction_ToTest_Reading_Inserting_Into_AWS.m';
opts = compiler.build.ProductionServerArchiveOptions(functionFile, 'AdditionalFiles', 'postgresql-42.7.2.jar');
buildResults = compiler.build.productionServerArchive(opts);
compiler.package.microserviceDockerImage(buildResults);
  5 Comments
Rahul Sivagaminathan
Rahul Sivagaminathan on 7 Mar 2024
Hi @Kojiro Saito I have one more question that my IT team wants to know. The dockerized image created by matlab can they run in a unix environment ? Or only in linux environment ? I am checking the help documents it seems Matlab create dockerized containers will only run on linux, windows and mac environments and not unix, is this correct ? Is there some workaround to make the containers run in a unix environment ?
Thanks for all your help and your time.
Kojiro Saito
Kojiro Saito on 12 Mar 2024
MATLAB Docker container images are Ubuntu based and you can run them from Linux, Mac and Windows environment. It may run but we don't test on Unix.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB Compiler SDK in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!