Skip to content

Commit 7fcd1ee

Browse files
authored
Merge pull request #8183 from 4teamwork/docker-improvements
Docker improvements
2 parents cf69472 + c1471f5 commit 7fcd1ee

10 files changed

Lines changed: 232 additions & 403 deletions

File tree

changes/GH-8183-1.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add support for serving blobs through ZEO server. This allows us to use PVCs with access mode RWO in Kubernetes. [buchi]

changes/GH-8183-2.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add healthcheck script which can be used for readiness probes. [buchi]
Lines changed: 62 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,4 @@
11
services:
2-
httpd:
3-
image: 4teamwork/oghttpd:latest
4-
build:
5-
context: .
6-
dockerfile: ./docker/httpd/Dockerfile
7-
ports:
8-
- "8088:80"
9-
depends_on:
10-
- ogui
11-
- ogcore
12-
environment:
13-
- HTTP_PROTOCOL=http
14-
- HTTP_PORT=8088
15-
- PORTAL_HOST=ianus-frontend
16-
profiles:
17-
- all
18-
msgconvert:
19-
image: 4teamwork/msgconvert:latest
20-
ports:
21-
- 8090:8080
22-
sablon:
23-
image: 4teamwork/sablon:latest
24-
ports:
25-
- 8091:8080
26-
pdflatex:
27-
image: 4teamwork/pdflatex:latest
28-
ports:
29-
- 8092:8080
30-
weasyprint:
31-
image: 4teamwork/weasyprint:latest
32-
ports:
33-
- 8093:8080
34-
clamav:
35-
image: clamav/clamav:latest
36-
ports:
37-
- '3310:3310'
38-
volumes:
39-
- clam_db:/var/lib/clamav
40-
- ./clamav/clamd.conf:/etc/clamav/clamd.conf
41-
profiles:
42-
- clamav
43-
ogui:
44-
image: 4teamwork/ogui:latest
45-
profiles:
46-
- all
472
ogcore: &ogcore
483
build:
494
context: .
@@ -52,7 +7,7 @@ services:
527
- gldt
538
image: 4teamwork/ogcore:latest
549
volumes:
55-
- ./var/ogcore:/data
10+
- ogcore:/data
5611
ports:
5712
- "8080:8080"
5813
- "8160:8160"
@@ -82,7 +37,7 @@ services:
8237
zeoserver:
8338
image: 4teamwork/zeoserver:4.3.20
8439
volumes:
85-
- ./var/ogcore:/data
40+
- ogcore:/data
8641
profiles:
8742
- all
8843
- ogcore
@@ -117,7 +72,7 @@ services:
11772
dockerfile: ./docker/solr/Dockerfile
11873
command: solr-foreground
11974
volumes:
120-
- ./var/solr:/var/solr/data
75+
- solr:/var/solr
12176
environment:
12277
- SOLR_CORES=development testing functionaltesting testserver
12378
ports:
@@ -126,15 +81,6 @@ services:
12681
nofile:
12782
soft: 65000
12883
hard: 65000
129-
redis:
130-
image: redis:6.2-alpine
131-
command:
132-
- redis-server
133-
- --save 60 1
134-
ports:
135-
- 6379:6379
136-
volumes:
137-
- ./var/redis:/data
13884
ldap:
13985
image: bitnami/openldap:2.6
14086
ports:
@@ -145,8 +91,62 @@ services:
14591
- LDAP_ROOT=dc=dev,dc=onegovgever,dc=ch
14692
- LDAP_ADMIN_DN=cn=admin,dc=dev,dc=onegovgever,dc=ch
14793
volumes:
94+
- ldap:/bitnami/openldap
14895
- ./docker/ldap.ldif:/ldifs/ldap.ldif
149-
- ./var/openldap:/bitnami/openldap
96+
redis:
97+
image: redis:6.2-alpine
98+
command:
99+
- redis-server
100+
- --save 60 1
101+
ports:
102+
- 6379:6379
103+
volumes:
104+
- redis:/data
105+
ogui:
106+
image: 4teamwork/ogui:latest
107+
profiles:
108+
- all
109+
httpd:
110+
image: 4teamwork/oghttpd:latest
111+
build:
112+
context: .
113+
dockerfile: ./docker/httpd/Dockerfile
114+
ports:
115+
- "8088:80"
116+
depends_on:
117+
- ogui
118+
- ogcore
119+
environment:
120+
- HTTP_PROTOCOL=http
121+
- HTTP_PORT=8088
122+
- PORTAL_HOST=ianus-frontend
123+
profiles:
124+
- all
125+
msgconvert:
126+
image: 4teamwork/msgconvert:latest
127+
ports:
128+
- 8090:8080
129+
sablon:
130+
image: 4teamwork/sablon:latest
131+
ports:
132+
- 8091:8080
133+
pdflatex:
134+
image: 4teamwork/pdflatex:latest
135+
ports:
136+
- 8092:8080
137+
weasyprint:
138+
image: 4teamwork/weasyprint:latest
139+
ports:
140+
- 8093:8080
141+
clamav:
142+
image: clamav/clamav:latest
143+
ports:
144+
- '3310:3310'
145+
volumes:
146+
- clam_db:/var/lib/clamav
147+
- ./clamav/clamd.conf:/etc/clamav/clamd.conf
148+
profiles:
149+
- clamav
150150
mta:
151151
image: 4teamwork/ogmta:latest
152152
build:
@@ -289,7 +289,11 @@ services:
289289
- kub
290290

291291
volumes:
292+
ogcore:
292293
ogds:
294+
solr:
295+
ldap:
296+
redis:
293297
clam_db:
294298
kub_db:
295299
kub_media:

docker/core/Dockerfile

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,22 @@
1-
# pkg builder
2-
# -----------------------------------------------------------------------------
3-
FROM alpine:3.20 AS pkg-builder
4-
5-
RUN apk -U add \
6-
sudo \
7-
alpine-sdk \
8-
apkbuild-pypi
9-
10-
RUN mkdir -p /var/cache/distfiles && \
11-
adduser -D packager && \
12-
addgroup packager abuild && \
13-
chgrp abuild /var/cache/distfiles && \
14-
chmod g+w /var/cache/distfiles && \
15-
echo "packager ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
16-
17-
WORKDIR /work
18-
USER packager
19-
20-
RUN abuild-keygen -a -i -n
21-
22-
COPY --chown=packager:packager ./docker/core/packages/ ./
23-
24-
RUN cd openssl1.1-compat && \
25-
abuild -r
1+
ARG ALPINE_VERSION=3.22
262

273
# ogcore builder
284
# -----------------------------------------------------------------------------
29-
FROM 4teamwork/plone:4.3.20-alpine3.20 AS builder
5+
FROM 4teamwork/plone:4.3.20-alpine${ALPINE_VERSION} AS builder
306
USER root
317

32-
RUN --mount=from=pkg-builder,source=/home/packager/packages/work,target=/packages \
33-
--mount=from=pkg-builder,source=/etc/apk/keys,target=/etc/apk/keys \
34-
apk --repository /packages add \
8+
RUN apk add curl
9+
10+
RUN --mount=type=secret,id=gldt \
11+
export GITLAB_DEPLOY_TOKEN=$(cat /run/secrets/gldt) && \
12+
if [ $(uname -m) == "x86_64" ]; \
13+
then curl -v -O https://__token__:$GITLAB_DEPLOY_TOKEN@git.4teamwork.ch/api/v4/projects/492/packages/generic/openssl1.1-compat-dev/1.1.1w-r1/openssl1.1-compat-dev-1.1.1w-r1.apk; \
14+
else curl -v -O https://__token__:$GITLAB_DEPLOY_TOKEN@git.4teamwork.ch/api/v4/projects/493/packages/generic/openssl1.1-compat-dev/1.1.1w-r1/openssl1.1-compat-dev-1.1.1w-r1.apk; \
15+
fi && \
16+
apk add --allow-untrusted openssl1.1-compat-dev-1.1.1w-r1.apk && \
17+
rm openssl1.1-compat-dev-1.1.1w-r1.apk
18+
19+
RUN apk add \
3520
gcc \
3621
musl-dev \
3722
libc-dev \
@@ -41,7 +26,6 @@ RUN --mount=from=pkg-builder,source=/home/packager/packages/work,target=/package
4126
libxml2-dev \
4227
libxslt-dev \
4328
openldap-dev \
44-
openssl1.1-compat-dev \
4529
libffi-dev \
4630
libpq \
4731
libpq-dev \
@@ -93,6 +77,7 @@ RUN chown -R plone:plone /app/etc
9377
COPY ./docker/core/entrypoint.d /app/entrypoint.d
9478
COPY ./docker/core/docker-entrypoint.sh ./docker/core/inituser /app/
9579
COPY ./docker/core/zopectl /app/bin/
80+
COPY ./docker/core/healthcheck.py /app/bin/
9681
COPY --chown=plone ./docker/core/cron /app/cron
9782
RUN chmod 644 /app/cron/crontab
9883

@@ -125,7 +110,7 @@ RUN python2.7 -m compileall /app/lib/python2.7/site-packages/plone/app/theming/t
125110

126111
# go-crond builder
127112
# -----------------------------------------------------------------------------
128-
FROM golang:1.23-alpine3.20 AS go-crond-builder
113+
FROM golang:1.23-alpine${ALPINE_VERSION} AS go-crond-builder
129114

130115
RUN apk upgrade --no-cache --force
131116
RUN apk add --update build-base make git
@@ -145,7 +130,7 @@ RUN make build
145130

146131
# ogcore production image
147132
# -----------------------------------------------------------------------------
148-
FROM 4teamwork/plone:4.3.20-alpine3.20 AS prod
133+
FROM 4teamwork/plone:4.3.20-alpine${ALPINE_VERSION} AS prod
149134

150135
USER root
151136
RUN apk add \

0 commit comments

Comments
 (0)