Skip to content

Instantly share code, notes, and snippets.

@14paxton
Created April 3, 2022 14:13
Show Gist options
  • Save 14paxton/c9fba71cd90ec3716974a48e386b3e1f to your computer and use it in GitHub Desktop.
Save 14paxton/c9fba71cd90ec3716974a48e386b3e1f to your computer and use it in GitHub Desktop.
FROM amkul99/zulujdk7:latest as grailsInstall
RUN apt-get update
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get -qq -y install curl unzip zip wget
ARG SDKMAN_DIR=$HOME/.sdkman
ARG GRAILSVERSION=2.0.3
ARG GROOVYVERSION=1.8.6
####Install Grails
#INSTALL FROM SDKMAN
RUN curl -s "https://get.sdkman.io" | bash && \
echo "sdkman_auto_answer=true" > $SDKMAN_DIR/etc/config && \
echo "sdkman_auto_selfupdate=false" >> $SDKMAN_DIR/etc/config
ENV PATH="$SDKMAN_DIR/bin:$PATH"
RUN bash -c "source $SDKMAN_DIR/bin/sdkman-init.sh && sdk install grails $GRAILSVERSION && sdk install groovy $GROOVYVERSION" && \
rm -rf "$SDKMAN_DIR/archives/*" && \
rm -rf "$SDKMAN_DIR/tmp/* "
ENV GRAILS_HOME $SDKMAN_DIR/candidates/grails/current
ENV GROOVY_HOME $SDKMAN_DIR/candidates/groovy/current
####INSTALL FROM GITHUB
#WORKDIR /usr/lib/jvm
#RUN wget https://github.com/grails/grails-core/releases/download/v$GRAILS_VERSION/grails-$GRAILS_VERSION.zip && \
# unzip grails-$GRAILS_VERSION.zip && \
# ln -s grails-$GRAILS_VERSION grails
# # Setup Grails path.
#ENV GRAILS_HOME /usr/lib/jvm/grails/
ENV PATH="$PATH:$GRAILS_HOME/bin"
ENV PATH="$GROOVY_HOME/bin:$PATH"
RUN bash -c "yes n | grails help"
#COPY APP INTO CONTAINER
WORKDIR /usr/lib/grailsApp
ADD ./. .
VOLUME /grailsInstall
FROM --platform=linux/amd64 grailsInstall as tomcatInstall
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
ENV TOMCAT_MAJOR 7
ENV TOMCAT_VERSION 7.0.20
ENV TOMCAT_TGZ_URL https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
# https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/
RUN curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
&& tar -xvf tomcat.tar.gz --strip-components=1 \
&& rm bin/*.bat \
&& rm tomcat.tar.gz*
WORKDIR $CATALINA_HOME/webapps/
RUN echo '<?xml version="1.0" encoding="utf-8"?><tomcat-users><role rolename="manager-gui"/><user username="admin" password="admin" roles="manager-gui"/></tomcat-users>' > /usr/local/tomcat/conf/tomcat-users.xml
VOLUME /tomcatInstall
FROM --platform=linux/amd64 tomcatInstall as grailsBuild
#PULL IN MISSING DEPENDENCIES FOR TB6
#ARG MISSING_ZIPS_DIR=$GRAILS_HOME/src/libs
#RUN wget -P $MISSING_ZIPS_DIR/mail-1.0.1.jar "https://repo.grails.org/ui/native/plugins/org/grails/plugins/mail/1.0.1/mail-1.0.1.zip"
#RUN wget -P $MISSING_ZIPS_DIR/crowd-0.4.jar "https://repo.grails.org/ui/native/plugins/org/grails/plugins/crowd/0.4/crowd-0.4.zip"
#RUN wget -P $MISSING_ZIPS_DIR/ui-performance-1.2.2.jar "https://repo.grails.org/ui/native/plugins/org/grails/plugins/ui-performance/1.2.2/ui-performance-1.2.2.zip"
#RUN wget -P $MISSING_ZIPS_DIR/rest-0.7.jar "https://repo.grails.org/ui/native/plugins/org/grails/plugins/rest/0.7/rest-0.7.zip"
#RUN wget -P $MISSING_ZIPS_DIR/remote-pagination-0.2.8.jar "https://repo.grails.org/ui/native/plugins/org/grails/plugins/remote-pagination/0.2.8/remote-pagination-0.2.8.zip"
#RUN wget -P $MISSING_ZIPS_DIR/mail-1.4.3.jar "https://maven.java.net/content/repositories/releases/javax/mail/mail/1.4.3/mail-1.4.3.jar"
#RUN wget -P $MISSING_ZIPS_DIR/http-builder-0.5.1.jar "https://repo1.maven.org/maven2/org/codehaus/groovy/modules/http-builder/http-builder/0.5.1/http-builder-0.5.1.jar"
WORKDIR /usr/lib/grailsApp
#ADD MISSING JARS TO GRAILS APP LIB FOLDER
#RUN cp -R $MISSING_ZIPS_DIR/* ./lib/
RUN ant -buildfile ./build/build.xml
RUN ant clean
RUN ant war
RUN ant dev
#RUN ant "tomcat_deploy" -f ./build/build.xml
RUN cp /build/*.war $CATALINA_HOME/webapps/
##EITHER CREATE WAR AND DROP IN TOMCAT WEBAPPS FOLDER, AND START
##OR GRAILS SHOULD BE PACKAGED WITH TOMCAT RUN-APP AND RUN-WAR SHOULD SPIN UP APP CONTAINED IN THE TOMCAT INSTANCE
## !!! RUN-WAR USES DEPENDENCIES CONTAINED WITHIN THE PRODUCED WAR, RUN-APP IN THE FILE STRUCTURE, RUN-APP WILL HOTSWAP
RUN bash -c "catalina.sh start"
EXPOSE 80800
RUN #bash -c "yes y | grails run-war"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment