-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathContainerfile.ubuntu
More file actions
101 lines (78 loc) · 3.54 KB
/
Copy pathContainerfile.ubuntu
File metadata and controls
101 lines (78 loc) · 3.54 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
ARG UBUNTU_VERSION=26.04
FROM ubuntu:${UBUNTU_VERSION} AS base
# Install JDK
ARG JDK_VERSION=21
RUN apt-get update \
&& apt-get upgrade -y --no-install-recommends \
&& apt-get install -y --no-install-recommends \
bash \
ca-certificates \
openjdk-${JDK_VERSION}-jre-headless \
postgresql-client \
tar \
xz-utils \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
################################################################################
FROM base AS build
# renovate: datasource=custom.voxpupuli-artifacts depName=openvoxdb
ARG OPENVOXDB_VERSION=8.14.1
ADD https://artifacts.voxpupuli.org/openvoxdb/${OPENVOXDB_VERSION}/openvoxdb-${OPENVOXDB_VERSION}.tar.gz /
COPY openvoxdb/prep_build_container.sh /
RUN /prep_build_container.sh
################################################################################
FROM base AS final
# renovate: datasource=custom.voxpupuli-artifacts depName=openvoxdb
ARG OPENVOXDB_VERSION=8.14.1
ENV OPENVOXDB_VERSION=${OPENVOXDB_VERSION}
LABEL org.label-schema.dockerfile="/Containerfile" \
org.label-schema.license="AGPLv3+" \
org.label-schema.maintainer="Voxpupuli Team <voxpupuli@groups.io>" \
org.label-schema.name="OpenVox DB" \
org.label-schema.schema-version="1.0" \
org.label-schema.url="https://github.com/OpenVoxProject/container-openvoxdb" \
org.label-schema.vcs-url="https://github.com/OpenVoxProject/container-openvoxdb" \
org.label-schema.vendor="OpenVoxProject" \
org.label-schema.version="$OPENVOXDB_VERSION"
ARG LOGDIR
ENV LOGDIR=${LOGDIR:-/opt/puppetlabs/server/data/puppetdb/logs}
ARG SSLDIR
ENV SSLDIR=${SSLDIR:-/opt/puppetlabs/server/data/puppetdb/certs}
ENV CERTNAME="openvoxdb" \
DEBIAN_FRONTEND=noninteractive \
DNS_ALT_NAMES="" \
OPENVOXDB_CERTIFICATE_ALLOWLIST="" \
OPENVOXDB_JAVA_ARGS="-Djava.net.preferIPv4Stack=true -Xms256m -Xmx256m -XX:+UseParallelGC -Xlog:gc*:file=${LOGDIR}/puppetdb_gc.log -Djdk.tls.ephemeralDHKeySize=2048" \
OPENVOXDB_NODE_PURGE_TTL="14d" \
OPENVOXDB_NODE_TTL="7d" \
OPENVOXDB_POSTGRES_DATABASE="openvoxdb" \
OPENVOXDB_POSTGRES_HOSTNAME="postgres" \
OPENVOXDB_POSTGRES_PASSWORD="openvoxdb" \
OPENVOXDB_POSTGRES_PORT="5432" \
OPENVOXDB_POSTGRES_USER="openvoxdb" \
OPENVOXDB_REPORT_TTL="14d" \
OPENVOXDB_WAITFORHEALTH_SECONDS="360" \
OPENVOXDB_WAITFORHOST_SECONDS="30" \
OPENVOXDB_WAITFORPOSTGRES_SECONDS="60" \
USE_OPENVOXSERVER=true \
WAITFORCERT="120"
# explicitly set HOME: random UIDs will cause HOME to be "/" generally
ENV HOME=/opt/puppetlabs/server/data/puppetdb
COPY --from=build /etc/logrotate.d /etc/logrotate.d
COPY --from=build /etc/puppetlabs /etc/puppetlabs
COPY --from=build /opt/puppetlabs /opt/puppetlabs
COPY --from=build /var/log/puppetlabs /var/log/puppetlabs
COPY --from=build /var/run/puppetlabs /var/run/puppetlabs
# In the openvoxdb/files directory, we have some files that need to be copied to the final image.
# However, instead of copying them file by file, we create a file hierarchy similar to the system root
# and copy the entire directory directly into the system root.
COPY openvoxdb/files /
COPY openvoxdb/prep_release_container.sh /
COPY Containerfile.ubuntu /Containerfile
RUN /prep_release_container.sh
USER puppetdb:0
# k8s uses livenessProbe, startupProbe, readinessProbe and ignores HEALTHCHECK
HEALTHCHECK --interval=20s --timeout=15s --retries=12 --start-period=3m CMD ["/healthcheck.sh"]
EXPOSE 8081
ENTRYPOINT ["dumb-init", "/container-entrypoint.sh"]
CMD ["foreground"]