-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathContainerfile.alpine
More file actions
155 lines (130 loc) · 7.44 KB
/
Copy pathContainerfile.alpine
File metadata and controls
155 lines (130 loc) · 7.44 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
FROM alpine:3.24 AS base
# Install JDK
ARG JDK_VERSION=21
RUN apk update && apk upgrade \
&& apk add --no-cache openjdk${JDK_VERSION}-jre-headless bash tar xz \
&& rm -rf /var/cache/apk/*
################################################################################
FROM base AS build
# renovate: datasource=custom.voxpupuli-artifacts depName=openvox-server
ARG OPENVOXSERVER_VERSION=8.14.1
# renovate: datasource=custom.voxpupuli-artifacts depName=openvoxdb
ARG OPENVOXDB_VERSION=8.14.1
ADD https://artifacts.voxpupuli.org/openvox-server/${OPENVOXSERVER_VERSION}/openvox-server-${OPENVOXSERVER_VERSION}.tar.gz /
ADD https://artifacts.voxpupuli.org/openvoxdb/${OPENVOXDB_VERSION}/openvoxdb-${OPENVOXDB_VERSION}.tar.gz /
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-augeas_core
ARG MODULE_AUGEAS_CORE=1.5.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-cron_core
ARG MODULE_CRON_CORE=1.3.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-host_core
ARG MODULE_HOST_CORE=1.3.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-mount_core
ARG MODULE_MOUNT_CORE=1.3.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-scheduled_task
ARG MODULE_SCHEDULED_TASK=4.0.3
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-selinux_core
ARG MODULE_SELINUX_CORE=1.4.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-sshkeys_core
ARG MODULE_SSHKEYS_CORE=2.5.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-yumrepo_core
ARG MODULE_YUMREPO_CORE=2.1.0
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-zfs_core
ARG MODULE_ZFS_CORE=1.6.1
# renovate: datasource=github-tags depName=OpenVoxProject/puppetlabs-zone_core
ARG MODULE_ZONE_CORE=1.2.0
ADD https://github.com/OpenVoxProject/puppetlabs-augeas_core/archive/refs/tags/v${MODULE_AUGEAS_CORE}.tar.gz /vendor_modules/puppetlabs-augeas_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-cron_core/archive/refs/tags/v${MODULE_CRON_CORE}.tar.gz /vendor_modules/puppetlabs-cron_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-host_core/archive/refs/tags/v${MODULE_HOST_CORE}.tar.gz /vendor_modules/puppetlabs-host_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-mount_core/archive/refs/tags/v${MODULE_MOUNT_CORE}.tar.gz /vendor_modules/puppetlabs-mount_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-scheduled_task/archive/refs/tags/v${MODULE_SCHEDULED_TASK}.tar.gz /vendor_modules/puppetlabs-scheduled_task.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-selinux_core/archive/refs/tags/v${MODULE_SELINUX_CORE}.tar.gz /vendor_modules/puppetlabs-selinux_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-sshkeys_core/archive/refs/tags/v${MODULE_SSHKEYS_CORE}.tar.gz /vendor_modules/puppetlabs-sshkeys_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-yumrepo_core/archive/refs/tags/v${MODULE_YUMREPO_CORE}.tar.gz /vendor_modules/puppetlabs-yumrepo_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-zfs_core/archive/refs/tags/v${MODULE_ZFS_CORE}.tar.gz /vendor_modules/puppetlabs-zfs_core.tar.gz
ADD https://github.com/OpenVoxProject/puppetlabs-zone_core/archive/refs/tags/v${MODULE_ZONE_CORE}.tar.gz /vendor_modules/puppetlabs-zone_core.tar.gz
COPY openvoxserver/prep_build_container.sh /
RUN /prep_build_container.sh
################################################################################
FROM base AS app
# renovate: datasource=rubygems depName=hiera-eyaml
ARG RUBYGEM_HIERA_EYAML=5.0.1
# renovate: datasource=rubygems depName=openvox
ARG RUBYGEM_OPENVOX=8.27.0
# renovate: datasource=rubygems depName=openvoxserver-ca
ARG RUBYGEM_OPENVOXSERVER_CA=3.2.0
# renovate: datasource=rubygems depName=r10k
ARG RUBYGEM_R10K=5.0.3
# renovate: datasource=rubygems depName=rugged
ARG RUBYGEM_RUGGED=1.9.0
ARG OPENVOX_USER_UID=64604
ARG OPENVOX_USER_GID=64604
# renovate: datasource=custom.voxpupuli-artifacts depName=openvox-server
ARG OPENVOXSERVER_VERSION=8.14.1
LABEL org.label-schema.maintainer="Voxpupuli Team <voxpupuli@groups.io>" \
org.label-schema.vendor="OpenVoxProject" \
org.label-schema.url="https://github.com/OpenVoxProject/container-openvoxserver" \
org.label-schema.vcs-url="https://github.com/OpenVoxProject/container-openvoxserver" \
org.label-schema.schema-version="1.0" \
org.label-schema.dockerfile="/Containerfile" \
org.label-schema.version="$OPENVOXSERVER_VERSION" \
org.label-schema.name="OpenVox Server"
ENV AUTOSIGN=true \
CA_ALLOW_SUBJECT_ALT_NAMES=false \
CA_ENABLED=true \
CA_TTL=157680000 \
CA_HOSTNAME=puppet \
CA_PORT=8140 \
CERTNAME="" \
CSR_ATTRIBUTES='{}' \
DEBIAN_FRONTEND=noninteractive \
DNS_ALT_NAMES="" \
ENVIRONMENTPATH=/etc/puppetlabs/code/environments \
HIERACONFIG='$confdir/hiera.yaml' \
INTERMEDIATE_CA_BUNDLE=/etc/puppetlabs/intermediate/ca.pem \
INTERMEDIATE_CA_KEY=/etc/puppetlabs/intermediate/key.pem \
INTERMEDIATE_CA=false \
INTERMEDIATE_CRL_CHAIN=/etc/puppetlabs/intermediate/crl.pem \
LOGDIR=/var/log/puppetlabs/puppetserver \
OPENVOX_REPORTS="puppetdb" \
OPENVOX_STORECONFIGS_BACKEND="puppetdb" \
OPENVOX_STORECONFIGS=true \
OPENVOX_USER_UID=${OPENVOX_USER_UID} \
OPENVOX_USER_GID=${OPENVOX_USER_GID} \
OPENVOXDB_SERVER_URLS=https://openvoxdb:8081 \
OPENVOXSERVER_ENABLE_ENV_CACHE_DEL_API=true \
OPENVOXSERVER_ENVIRONMENT_TIMEOUT=unlimited \
OPENVOXSERVER_GRAPHITE_EXPORTER_ENABLED=false \
OPENVOXSERVER_GRAPHITE_HOST=exporter \
OPENVOXSERVER_GRAPHITE_PORT=9109 \
OPENVOXSERVER_HOSTNAME="" \
OPENVOXSERVER_JAVA_ARGS="-Xms1024m -Xmx1024m -XX:SharedArchiveFile=/opt/puppetlabs/server/apps/puppetserver/puppetserver.jsa" \
OPENVOXSERVER_MAX_ACTIVE_INSTANCES=1 \
OPENVOXSERVER_MAX_REQUESTS_PER_INSTANCE=0 \
OPENVOXSERVER_PORT=8140 \
PATH=$PATH:/opt/puppetlabs/server/bin:/opt/puppetlabs/puppet/bin:/opt/puppetlabs/bin \
USE_OPENVOXDB=true
# explicitly set HOME: random UIDs will cause HOME to be "/" generally
ENV HOME=/opt/puppetlabs/server/data/puppetserver
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 openvoxserver/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 openvoxserver/files /
COPY openvoxserver/prep_release_container.sh /
COPY Containerfile.alpine /Containerfile
RUN /prep_release_container.sh
USER puppet:0
# Create a CDS archive in a stage for faster class loading.
FROM app AS cds
RUN OPENVOXSERVER_JAVA_ARGS="-Xms1024m -Xmx1024m -XX:ArchiveClassesAtExit=/opt/puppetlabs/server/apps/puppetserver/puppetserver.jsa -Xlog:cds=off" \
timeout --preserve-status 60 dumb-init /container-entrypoint.sh foreground || [ $? -eq 143 ]
FROM app AS final
COPY --from=cds /opt/puppetlabs/server/apps/puppetserver/puppetserver.jsa /opt/puppetlabs/server/apps/puppetserver/puppetserver.jsa
# k8s uses livenessProbe, startupProbe, readinessProbe and ignores HEALTHCHECK
HEALTHCHECK --interval=20s --timeout=15s --retries=12 --start-period=3m CMD ["/healthcheck.sh"]
EXPOSE 8140
ENTRYPOINT ["dumb-init", "/container-entrypoint.sh"]
CMD ["foreground"]