Knew it was the JAR packaging, I did try to send the JAR file I has working
in debain-slim but Gmail blocks JAR attachments.

Interestingly I stopped using SpringBoot (for another reason I can't
remember) a few years ago and use the TomCat (exec-war) plugin instead.
Jetty also has a plugin which is another option. I think the best option
here is to use the TomCat DockerHub images and deploy it as a WAR file.

https://github.com/cdk/depict/blob/master/pom.xml#L88-L109

            <plugin>
>                 <groupId>org.apache.tomcat.maven</groupId>
>                 <artifactId>tomcat7-maven-plugin</artifactId>
>                 <version>2.1</version>
>                 <executions>
>                     <execution>
>                         <id>tomcat-run</id>
>                         <goals>
>                             <goal>exec-war-only</goal>
>                         </goals>
>                         <phase>package</phase>
>                         <configuration>
>                             <finalName>${project.name
> }-${project.version}.jar</finalName>
>                             <path>/</path>
>                             <attachArtifactClassifier>boot
>                             </attachArtifactClassifier>
>                             <attachArtifactClassifierType>jar
>                             </attachArtifactClassifierType>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>


On Fri, 14 Sep 2018 at 07:12, Egon Willighagen <egon.willigha...@gmail.com>
wrote:

>
> Oh, very happy to hear that! Are you going to put it up on DockerHub?
>
> Egon
>
> On Thu, Sep 13, 2018 at 10:42 PM Maria Sorokina <maria.ssorok...@gmail.com>
> wrote:
>
>> I managed to make my app function.
>>
>> The problem comes from the way a Spring Boot application packages the jar
>> - internally, the jar is different from plain old Java, so the deployment
>> of artefacts is also different. The Jnati library that allows the wrapping
>> of the InChi factory is not adapted to that special deployment and is
>> simply lost and doesn’t find the artifacts in correct places *if it never
>> ran on the system before* (case of a brand new minimal image).
>> The trick I found to make a Spring Boot application using InChis run in
>> Docker is not very elegant, but functional. In the container, during the
>> compilation, or at the execution of the container, before running the main
>> Spring Boot jar, run the simples possible mini POJO jar containing the
>> InChiGeneratorFactory, that will create the correct environment.
>> Now everything works!
>>
>> This is my Dockerfile:
>>
>> FROM openjdk:8u171-slim
>> EXPOSE 8080
>> VOLUME /tmp
>> ARG JAR_FILE
>> COPY ${JAR_FILE} app.jar
>> COPY inchiPet.jar /
>>
>> RUN java -jar inchiPet.jar
>>
>> ENTRYPOINT 
>> ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
>>
>> Where « inchiPet.jar » is the tiny regular jar with only a call to an
>> inchiGeneratorFactory, and « app.jar » is my main app.
>>
>> However, I used a bunch of libraries from CDK and until now, only the
>> InChi generator caused this problem within the Spring Boot - Docker
>> ecosystem.
>>
>> Hope this solution could help anybody encountering this kind of problem
>> in the future!
>>
>> Maria Sorokina, PhD
>> Steinbeck Research Group
>> Analytical Chemistry - Cheminformatics and Chemometrics
>> Friedrich-Schiller-University Jena, Germany
>> http://cheminf.uni-jena.de
>>
>
>
> --
> E.L. Willighagen
> Department of Bioinformatics - BiGCaT
> Maastricht University (http://www.bigcat.unimaas.nl/)
> Homepage: http://egonw.github.com/
> Blog: http://chem-bla-ics.blogspot.com/
> PubList: https://www.zotero.org/egonw
> ORCID: 0000-0001-7542-0286 <http://orcid.org/0000-0001-7542-0286>
> ImpactStory: https://impactstory.org/u/egonwillighagen
>
_______________________________________________
Cdk-user mailing list
Cdk-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdk-user

Reply via email to