-
Notifications
You must be signed in to change notification settings - Fork 196
/
Copy pathDockerfile
100 lines (74 loc) · 4.26 KB
/
Dockerfile
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# dependencies docker build
# match version from .tool-versions
FROM maven:3.6.3-jdk-11 AS maven
ARG tag_numeric
WORKDIR /build
# copy only poms for max cachability of just dependency downloads
COPY pom.xml .
COPY orcid-core/pom.xml orcid-core/pom.xml
COPY orcid-persistence/pom.xml orcid-persistence/pom.xml
COPY orcid-utils/pom.xml orcid-utils/pom.xml
COPY orcid-test/pom.xml orcid-test/pom.xml
COPY orcid-api-common/pom.xml orcid-api-common/pom.xml
COPY orcid-scheduler-web/pom.xml orcid-scheduler-web/pom.xml
COPY orcid-api-web/pom.xml orcid-api-web/pom.xml
COPY orcid-message-listener/pom.xml orcid-message-listener/pom.xml
COPY orcid-core/pom.xml orcid-core/pom.xml
COPY orcid-web/pom.xml orcid-web/pom.xml
COPY orcid-internal-api/pom.xml orcid-internal-api/pom.xml
COPY orcid-pub-web/pom.xml orcid-pub-web/pom.xml
COPY orcid-activemq/pom.xml orcid-activemq/pom.xml
# FIXME: these dont seem required?
#COPY orcid-web-frontend/pom.xml orcid-web-frontend/pom.xml
#COPY orcid-activities-indexer/pom.xml orcid-activities-indexer/pom.xml
#COPY orcid-nodejs/pom.xml orcid-nodejs/pom.xml
# download maven dependencies and ignore that some components will fail
RUN mvn -T 1C --batch-mode dependency:resolve --fail-never -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-parent into our local maven repo because the builds depend a version tagged release
RUN mvn -T 1C --batch-mode --non-recursive clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-utils into our local maven repo because the builds depend a version tagged release
COPY orcid-utils/src orcid-utils/src
RUN mvn -T 1C --batch-mode --projects orcid-utils clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-test into our local maven repo because orcid-persistence depends on it
COPY orcid-test/src orcid-test/src
RUN mvn -T 1C --batch-mode --projects orcid-test clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-persistence into our local maven repo because orcid-core depends on it
COPY orcid-persistence/src orcid-persistence/src
RUN mvn -T 1C --batch-mode --projects orcid-persistence clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-core into our local maven repo because the builds depend a version tagged release
COPY orcid-core/src orcid-core/src
RUN mvn -T 1C --batch-mode --projects orcid-core clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# install orcid-api-common into our local maven repo because orcid-web deploy depends a version tagged release
COPY orcid-api-common/src orcid-api-common/src
RUN mvn -T 1C --batch-mode --projects orcid-api-common clean install -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
##################################################################################
COPY orcid-web/src orcid-web/src
RUN mvn -T 1C --batch-mode -DgenerateBackupPoms=false \
--projects orcid-web -am package -DskipTests \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
# For Java 11 and Tomcat 9
FROM tomcat:9.0.93-jdk11-temurin-jammy
# Focal has no j2cli support
# FROM tomcat:9.0.91-jdk11-temurin-focal
# copy jar file from build
COPY --from=maven /build/*/target/*.war /usr/local/tomcat/webapps/orcid-web.war
RUN mkdir -p /usr/local/tomcat/newrelic
COPY newrelic.yml /usr/local/tomcat/newrelic/newrelic.yml
RUN curl -L -s https://download.newrelic.com/newrelic/java-agent/newrelic-agent/8.13.0/newrelic-agent-8.13.0.jar -o /usr/local/tomcat/newrelic/newrelic.jar
RUN apt-get update
RUN apt-get install -y j2cli
# add orcid ca to allow Java application to trust other containers
ADD certs/cacerts /opt/java/openjdk/lib/security/cacerts
# add orcid ca to system to allow curl healthchecks to work
ADD certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY entrypoint.sh .
RUN chmod +x ./entrypoint.sh
COPY orcid-web/*.j2 .
COPY orcid-web/log4j2.xml .
ENTRYPOINT ./entrypoint.sh