summaryrefslogtreecommitdiff
path: root/Dockerfile
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"]