# This image prepares war-container with ready application FROM maven:3.5.3-jdk-8 as builder # Defining args for reading from docker-compose file ARG GIT_USR ARG GIT_PWD # Defining environment variables ENV PROJECT_NAME task-sources ENV GIT_USR "$GIT_USR" ENV GIT_PWD "$GIT_PWD" ENV GIT_DOMAIN github.com ENV GIT_PROJECT_PATH a1qa-education-exam/$PROJECT_NAME.git ENV GIT_REPO=https://$GIT_USR:$GIT_PWD@$GIT_DOMAIN/$GIT_PROJECT_PATH # Creating working directory for Maven RUN mkdir -p "$MAVEN_HOME" WORKDIR $MAVEN_HOME # Installing Git RUN apt-get -y update && apt-get -y install git # Cloning project repository RUN git clone $GIT_REPO # Packaging project into war-containers RUN mvn clean package -f ${MAVEN_HOME}/${PROJECT_NAME}/pom.xml # This image deploying application on Tomcat FROM tomcat:7-jre8 # Defining environment variables ENV PROJECT_NAME task-sources ENV MODULE_NAME_DB union_reporting ENV MODULE_NAME union-reporting ENV TOMCAT_USER login ENV TOMCAT_PASSWORD password ENV TOMCAT_ROLE testportalrole ENV DB_PORT 3306 ENV DB_URL jdbc:mysql://db:${DB_PORT}/${MODULE_NAME_DB} ENV TOMCAT_USERS_XML ENV TOMCAT_CONTEXT_XML WEB-INF/web.xml # Setting maintainer for the image MAINTAINER Artyom Ryazantsev # Creating working directory for Tomcat RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOME # Deleting default ROOT-app on Tomcat RUN rm -r ${CATALINA_HOME}/webapps/ROOT # Installing rpl tool RUN apt-get update && apt-get -y install rpl # Replacing required configuration data on Tomcat RUN rpl '' "${TOMCAT_USERS_XML}" ${CATALINA_HOME}/conf/tomcat-users.xml RUN rpl '' "${TOMCAT_CONTEXT_XML}" ${CATALINA_HOME}/conf/context.xml # Deploying the application (web and api parts) on Tomcat COPY --from=builder /usr/share/maven/${PROJECT_NAME}/${MODULE_NAME}-api/target/api.war ${CATALINA_HOME}/webapps/api.war COPY --from=builder /usr/share/maven/${PROJECT_NAME}/${MODULE_NAME}-web/target/web.war ${CATALINA_HOME}/webapps/web.war EXPOSE 8080 CMD ["catalina.sh" , "run"]