-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathDockerfile
More file actions
82 lines (61 loc) · 2.96 KB
/
Copy pathDockerfile
File metadata and controls
82 lines (61 loc) · 2.96 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
75
76
77
78
79
80
81
82
FROM gradle:9.3.0-jdk25 AS javadoc-build
USER root
WORKDIR /src
COPY . .
RUN gradle javadoc --no-daemon
FROM python:3.12-slim AS docs-build
WORKDIR /docs
COPY docs/ .
COPY --from=javadoc-build /src/docs/api api
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir . && \
sphinx-build source build
FROM gradle:9.3.0-jdk25 AS build
ARG ARCHAPPL_SITEID=default
ENV ARCHAPPL_SITEID=${ARCHAPPL_SITEID}
ARG VERSION=unknown
USER root
WORKDIR /src
COPY . .
# Docs are not baked into the WARs here; they are injected into the mgmt/singletomcat
# images at assembly time (see below), so this stage does not depend on docs-build.
RUN gradle mgmtWar etlWar engineWar retrievalWar --no-daemon -PprojVersion=${VERSION} -x sphinx -x javadoc
FROM eclipse-temurin:25-jdk AS expand-wars
WORKDIR /wars
COPY --from=build /src/build/libs/mgmt.war /wars/mgmt/
COPY --from=build /src/build/libs/etl.war /wars/etl/
COPY --from=build /src/build/libs/engine.war /wars/engine/
COPY --from=build /src/build/libs/retrieval.war /wars/retrieval/
RUN cd mgmt && jar -xvf mgmt.war && rm mgmt.war
RUN cp -r mgmt/WEB-INF/lib lib && rm -rf mgmt/WEB-INF/lib
RUN cd etl && jar -xvf etl.war && rm etl.war && rm -rf WEB-INF/lib/*
RUN cd engine && jar -xvf engine.war && rm engine.war && rm -rf WEB-INF/lib/*
RUN cd retrieval && jar -xvf retrieval.war && rm retrieval.war && rm -rf WEB-INF/lib/*
FROM tomcat:11 AS tomcat-base
ENV ARCHAPPL_APPLIANCES=/usr/local/tomcat/archappl_conf/appliances.xml
ENV ARCHAPPL_POLICIES=/usr/local/tomcat/archappl_conf/policies.py
ENV ARCHAPPL_SHORT_TERM_FOLDER=/usr/local/tomcat/storage/sts
ENV ARCHAPPL_MEDIUM_TERM_FOLDER=/usr/local/tomcat/storage/mts
ENV ARCHAPPL_LONG_TERM_FOLDER=/usr/local/tomcat/storage/lts
ENV ARCHAPPL_MYIDENTITY=archappl0
ENV CATALINA_OUT=/dev/stdout
FROM tomcat-base AS copy-webapp
COPY docker/archappl/copy_conf/context.xml /usr/local/tomcat/conf
COPY --from=expand-wars /wars/lib /usr/local/tomcat/lib
FROM copy-webapp AS singletomcat
COPY --from=expand-wars /wars/mgmt /usr/local/tomcat/webapps/mgmt
COPY --from=docs-build /docs/build /usr/local/tomcat/webapps/mgmt/ui/help
COPY --from=expand-wars /wars/etl /usr/local/tomcat/webapps/etl
COPY --from=expand-wars /wars/engine /usr/local/tomcat/webapps/engine
COPY --from=expand-wars /wars/retrieval /usr/local/tomcat/webapps/retrieval
FROM copy-webapp AS mgmt
COPY --from=expand-wars /wars/mgmt /usr/local/tomcat/webapps/mgmt
COPY --from=docs-build /docs/build /usr/local/tomcat/webapps/mgmt/ui/help
FROM copy-webapp AS etl
COPY --from=expand-wars /wars/etl /usr/local/tomcat/webapps/etl
FROM copy-webapp AS engine
COPY --from=expand-wars /wars/engine /usr/local/tomcat/webapps/engine
FROM copy-webapp AS retrieval
COPY --from=expand-wars /wars/retrieval /usr/local/tomcat/webapps/retrieval
LABEL org.opencontainers.image.source=https://github.com/archiver-appliance/epicsarchiverap
LABEL org.opencontainers.image.description="Docker image for the Archiver Appliance, both as a singletomcat or single war image."