blob: 80da933fe1406b315bff2a9a846b14cbc6593176 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# 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 <role rolename="\"${TOMCAT_ROLE}\""/> <user username="\"${TOMCAT_USER}\"" password="\"${TOMCAT_PASSWORD}\"" roles="\"${TOMCAT_ROLE}\""/> </tomcat-users>
ENV TOMCAT_CONTEXT_XML <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name='"jdbc/mysql"' auth='"Container"' type='"javax.sql.DataSource"' maxTotal='"100"' maxIdle='"30"' maxWaitMillis='"10000"' username="\"${TOMCAT_USER}\"" password="\"${TOMCAT_PASSWORD}\"" driverClassName='"com.mysql.jdbc.Driver"' url="\"${DB_URL}\""/> </Context>
# 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>' "${TOMCAT_USERS_XML}" ${CATALINA_HOME}/conf/tomcat-users.xml
RUN rpl '</Context>' "${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"]
|