Just to follow-up on this in case it will be useful to anyone, I managed to
use also the official tomcat image. I had to amend my .war files and use
the openjdk:8-jdk version instead of openjdk:11-jdk.

I have used the following Docker files to prepare my custom tomcat image
(so as to have tomcat home at /opt/tomcat) and then deployed the final app
as following:

Got openjdk:8-jdk Docker file from:
https://github.com/docker-library/tomcat/blob/807a2b4f219d70f5ba6f4773d4ee4ee155850b0d/8.5/jdk8/openjdk/Dockerfile
Amended the tomcat home to /opt/tomcat.

Then deployed the app using the following Docker file:

FROM tomcat:custom
USER root
ENV CATALINA_HOME /opt/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
ADD iforms_files/app.war $CATALINA_HOME/webapps/
ADD iforms_files/orbeon.war $CATALINA_HOME/webapps/
ADD iforms_files/server.xml $CATALINA_HOME/conf/
ADD iforms_files/mariadb-java-client-2.4.1.jar $CATALINA_HOME/lib
ADD iforms_files/setenv.sh $CATALINA_HOME/bin/
EXPOSE 8443
CMD ["catalina.sh", "run"]

I also tried the alpine versions:
https://hub.docker.com/layers/openjdk/library/openjdk/8-jre-alpine3.9/images/sha256-ea81da311d33e052eeea34336018434bdc50596100f9c623193867faa291b284

by using the same Dockerfile (by pointing to the custom built image FROM
tomcat:alpine) I was able to deploy same app successfully reaching image
size 281MB instead of 660MB with the default tomcat image.




On Fri, Jan 10, 2020 at 11:52 AM Alex K <rightkickt...@gmail.com> wrote:

> Hi,
>
> On Thu, Jan 9, 2020 at 7:50 PM Mark Eggers <its_toas...@yahoo.com.invalid>
> wrote:
>
>> Alex,
>>
>> On 1/9/2020 8:51 AM, Alex K wrote:
>> > Hi all,
>> >
>> > I have two .war files that when deployed at a plain Debian 9 VM are
>> working
>> > fine.
>> > I have prepared a docker file so as to deploy the same apps within a
>> docker
>> > container and for some reason one of the apps is not loading due to some
>> > error.
>> >
>> > Dockerfile:
>> > FROM debian:latest
>> > USER root
>> >
>> > ENV CATALINA_HOME /opt/tomcat
>> > ENV PATH $CATALINA_HOME/bin:$PATH
>> > RUN mkdir -p "$CATALINA_HOME"
>> > WORKDIR $CATALINA_HOME
>> >
>> > # Install packages
>> > RUN apt update && apt install default-jdk -y && groupadd tomcat &&
>> useradd
>> > -s /bin/false -g tomcat -d $CATALINA_HOME tomcat
>> > COPY apache-tomcat-8.5.50.tar.gz /tmp/
>> >
>> > RUN tar xzvf /tmp/apache-tomcat-8.5.50.tar.gz -C /opt/tomcat
>> > --strip-components=1
>> >
>> > ADD app.war $CATALINA_HOME/webapps/
>> > ADD orbeon.war $CATALINA_HOME/webapps/
>> > ADD server.xml $CATALINA_HOME/conf/
>> > ADD web.xml $CATALINA_HOME/conf/
>> > ADD mariadb-java-client-2.4.1.jar $CATALINA_HOME/lib
>> > ADD setenv.sh $CATALINA_HOME/bin/
>> >
>> > RUN chgrp -R tomcat $CATALINA_HOME && \
>> >     chown -R tomcat webapps/ work/ temp/ logs/ && \
>> >     chmod -R g+r conf && \
>> >     chmod g+x conf && \
>> >     chmod 750 $CATALINA_HOME/bin/setenv.sh && \
>> >     rm -f /tmp/apache-tomcat-8.5.50.tar.gz;
>> >
>> > EXPOSE 8443
>> > CMD ["catalina.sh", "run"]
>> >
>> > I have tried also several other ways, by using directly other docker
>> tomcat
>> > images everytime resulting with some error.
>> >
>> > The error I am getting now is:
>> >
>> > 10:21:32.201 WARN  c.h.c.c.s.CubaXmlWebApplicationContext  - Exception
>> > encountered during context initialization - cancelling refresh attempt:
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name 'org.springframework.security.filterChains': Cannot
>> resolve
>> > reference to bean
>> > 'org.springframework.security.web.DefaultSecurityFilterChain#0' while
>> > setting bean property 'sourceList' with key [0]; nested exception is
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name
>> > 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot
>> > create inner bean '(inner bean)#27690bd5' of type
>> >
>> [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]
>> > while setting constructor argument with key [4]; nested exception is
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name '(inner bean)#27690bd5': Cannot resolve reference to bean
>> > 'clientAuthenticationEntryPoint' while setting constructor argument;
>> nested
>> > exception is org.springframework.beans.factory.BeanCreationException:
>> Error
>> > creating bean with name 'clientAuthenticationEntryPoint' defined in
>> class
>> > path resource [com/haulmont/addon/restapi/rest-dispatcher-spring.xml]:
>> > Instantiation of bean failed; nested exception is
>> > org.springframework.beans.BeanInstantiationException: Failed to
>> instantiate
>> >
>> [org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint]:
>> > Constructor threw exception; nested exception is
>> > java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
>> > 10:21:32.243 ERROR c.h.a.r.a.r.RestAPIDispatcherServlet    - Context
>> > initialization failed
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name 'org.springframework.security.filterChains': Cannot
>> resolve
>> > reference to bean
>> > 'org.springframework.security.web.DefaultSecurityFilterChain#0' while
>> > setting bean property 'sourceList' with key [0]; nested exception is
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name
>> > 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot
>> > create inner bean '(inner bean)#27690bd5' of type
>> >
>> [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]
>> > while setting constructor argument with key [4]; nested exception is
>> > org.springframework.beans.factory.BeanCreationException: Error creating
>> > bean with name '(inner bean)#27690bd5': Cannot resolve reference to bean
>> > 'clientAuthenticationEntryPoint' while setting constructor argument;
>> nested
>> > exception is org.springframework.beans.factory.BeanCreationException:
>> Error
>> > creating bean with name 'clientAuthenticationEntryPoint' defined in
>> class
>> > path resource [com/haulmont/addon/restapi/rest-dispatcher-spring.xml]:
>> > Instantiation of bean failed; nested exception is
>> > org.springframework.beans.BeanInstantiationException: Failed to
>> instantiate
>> >
>> [org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint]:
>> > Constructor threw exception; nested exception is
>> > java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
>> >
>> >
>> > Since I am not very familiar with tomcat, I would appreciate any
>> pointers
>> > how to troubleshoot this.
>> >
>> > Thanx,
>> > Alex
>> >
>>
>> What's the Java version for Debian 9 versus the debian:latest docker
>> image?
>>
> Thanx for your pointer. It seems it as a version issue I had as using
> debian:stretch image I was able to deploy successfully as a container.
> The version I have at Debian 9 is:
>
> root@debian9:~# java -version
> openjdk version "1.8.0_232"
> OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-1~deb9u1-b09)
> OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
>
> The docker file that successfully deployed the app is:
>
> FROM debian:stretch
> USER root
>
> ENV CATALINA_HOME /opt/tomcat
> ENV PATH $CATALINA_HOME/bin:$PATH
> RUN mkdir -p "$CATALINA_HOME"
> WORKDIR $CATALINA_HOME
>
> # Install packages
> RUN apt update && apt install default-jdk -y && groupadd tomcat && useradd
> -s /bin/false -g tomcat -d $CATALINA_HOME tomcat
> COPY iforms_files/apache-tomcat-8.5.50.tar.gz /tmp/
>
> RUN tar xzvf /tmp/apache-tomcat-8.5.50.tar.gz -C /opt/tomcat
> --strip-components=1
>
> ADD iforms_files/app.war $CATALINA_HOME/webapps/
> ADD iforms_files/orbeon.war $CATALINA_HOME/webapps/
> ADD iforms_files/server.xml $CATALINA_HOME/conf/
> ADD iforms_files/mariadb-java-client-2.4.1.jar $CATALINA_HOME/lib
> ADD iforms_files/setenv.sh $CATALINA_HOME/bin/
>
> RUN chgrp -R tomcat $CATALINA_HOME && \
>     chown -R tomcat webapps/ work/ temp/ logs/ && \
>     chmod -R g+r conf && \
>     chmod g+x conf && \
>     chmod 750 $CATALINA_HOME/bin/setenv.sh && \
>     rm -f /tmp/apache-tomcat-8.5.50.tar.gz;
>
> EXPOSE 8443
> CMD ["catalina.sh", "run"]
>
>
>> . . . just my two cents
>> /mde/
>>
>>
> Thank you all for your assistance!
>
> Alex
>

Reply via email to