-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathDockerfile
62 lines (48 loc) · 1.64 KB
/
Dockerfile
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
FROM public.ecr.aws/docker/library/alpine:3.21.2 AS base
RUN apk add \
nginx \
python3 \
--no-cache
FROM base AS builder
RUN apk add \
gcc \
gd-dev \
geoip-dev \
krb5-dev \
libc-dev \
libffi-dev \
libmaxminddb-dev \
libxslt-dev \
linux-headers \
make \
openssl \
openssl-dev \
pcre-dev \
perl-dev \
python3-dev \
zlib-dev \
--no-cache
COPY extract_nginx_options.py /usr/src/extract_nginx_options.py
COPY build_spnego_module.sh /usr/src/build_spnego_module.sh
RUN /usr/src/build_spnego_module.sh
ADD requirements.txt /usr/src/requirements.txt
ADD constraints.txt /usr/src/constraints.txt
RUN python3 -m venv /usr/share/nginx/venv/
RUN /usr/share/nginx/venv/bin/pip install --no-cache-dir --no-compile -r /usr/src/requirements.txt -c /usr/src/constraints.txt
RUN /usr/share/nginx/venv/bin/pip freeze
RUN cd /usr/share/nginx/venv/lib/python*/site-packages/ && rm -rf pip pip-* setuptools setuptools-*
ADD create_certs.sh /usr/src/create_certs.sh
RUN /usr/src/create_certs.sh
FROM base AS output
COPY --from=builder /usr/lib/nginx/modules/ /usr/lib/nginx/modules/
COPY --from=builder /usr/share/nginx/venv/ /usr/share/nginx/venv/
COPY --from=builder /usr/src/nginx.conf /etc/nginx/nginx.conf
COPY --from=builder /root/ca/ /root/ca/
COPY --from=builder /root/ca2/ /root/ca2/
ADD krb5.conf /usr/src/krb5.conf
ADD configure_nginx.sh /usr/src/configure_nginx.sh
RUN /usr/src/configure_nginx.sh
ADD services.sh /services.sh
ADD nginx.sites.conf /etc/nginx/http.d/default.conf
EXPOSE 80 88 443 749
CMD ["/services.sh"]