forked from elastic/opbeans-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
74 lines (61 loc) · 2.74 KB
/
Dockerfile
File metadata and controls
74 lines (61 loc) · 2.74 KB
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
#Multi-Stage build
#Build application stage
#We need maven.
FROM maven:3.6.3-jdk-11
ARG JAVA_AGENT_BRANCH=master
ARG JAVA_AGENT_REPO=elastic/apm-agent-java
WORKDIR /usr/src/java-app
#build the application
ADD . /usr/src/java-code
WORKDIR /usr/src/java-code/opbeans
#Bring the latest frontend code
COPY --from=opbeans/opbeans-frontend:latest /app/build src/main/resources/public
RUN mvn -q --batch-mode package \
-DskipTests \
-Dmaven.repo.local=.m2 \
--no-transfer-progress \
-Dmaven.wagon.http.retryHandler.count=3 \
-Dhttps.protocols=TLSv1.2 \
-Dhttp.keepAlive=false \
-Dmaven.javadoc.skip=true \
-DskipTests=true \
-Dmaven.gitcommitid.skip=true
RUN cp -v /usr/src/java-code/opbeans/target/*.jar /usr/src/java-app/app.jar
#build the agent
WORKDIR /usr/src/java-agent-code
RUN curl -L https://github.com/$JAVA_AGENT_REPO/archive/$JAVA_AGENT_BRANCH.tar.gz | tar --strip-components=1 -xz
RUN mvn -q --batch-mode clean package \
-Dmaven.repo.local=.m2 \
--no-transfer-progress \
-Dmaven.wagon.http.retryHandler.count=3 \
-Dhttps.protocols=TLSv1.2 \
-Dhttp.keepAlive=false \
-Dmaven.javadoc.skip=true \
-DskipTests=true \
-Dmaven.gitcommitid.skip=true
RUN export JAVA_AGENT_BUILT_VERSION=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec) \
&& cp -v /usr/src/java-agent-code/elastic-apm-agent/target/elastic-apm-agent-${JAVA_AGENT_BUILT_VERSION}.jar /usr/src/java-app/elastic-apm-agent.jar
#Run application Stage
#We only need java
FROM adoptopenjdk:11-jre-hotspot
RUN export
RUN apt-get -qq update \
&& apt-get install --no-install-recommends -y -qq curl \
&& rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true
WORKDIR /app
COPY --from=0 /usr/src/java-app/*.jar ./
LABEL \
org.label-schema.schema-version="1.0" \
org.label-schema.vendor="Elastic" \
org.label-schema.name="opbeans-java" \
org.label-schema.version="1.18.1" \
org.label-schema.url="https://hub.docker.com/r/opbeans/opbeans-java" \
org.label-schema.vcs-url="https://github.com/elastic/opbeans-java" \
org.label-schema.license="MIT"
CMD java -javaagent:/app/elastic-apm-agent.jar -Dspring.profiles.active=${OPBEANS_JAVA_PROFILE:-}\
-Dserver.port=${OPBEANS_SERVER_PORT:-}\
-Dserver.address=${OPBEANS_SERVER_ADDRESS:-0.0.0.0}\
-Dspring.datasource.url=${DATABASE_URL:-}\
-Dspring.datasource.driverClassName=${DATABASE_DRIVER:-}\
-Dspring.jpa.database=${DATABASE_DIALECT:-}\
-jar /app/app.jar