-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathDockerfile
131 lines (114 loc) · 3.81 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
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
FROM debian:bookworm-slim
LABEL org.opencontainers.image.source = "https://github.com/emgag/docker-varnish"
#
# install varnish build deps
#
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
automake \
autotools-dev \
build-essential \
ca-certificates \
curl \
git \
libedit-dev \
libjemalloc-dev \
libmhash-dev \
libncurses-dev \
libpcre3-dev \
libtool \
pkg-config \
python-is-python3 \
python3 \
python3-docutils \
python3-sphinx \
&& apt-get clean \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*
#
# install varnish
#
ENV VARNISH_VERSION=6.0.13
ENV VARNISH_SHA256SUM=0dca6295f9c69d47a7208598c415385c590c66863ebd42bfeb08a367b788a9ba
RUN mkdir -p /usr/local/src && \
cd /usr/local/src && \
curl -sfLO https://varnish-cache.org/_downloads/varnish-${VARNISH_VERSION}.tgz && \
echo "${VARNISH_SHA256SUM} varnish-${VARNISH_VERSION}.tgz" | sha256sum -c - && \
tar -xzf varnish-${VARNISH_VERSION}.tgz && \
rm varnish-${VARNISH_VERSION}.tgz && \
cd varnish-${VARNISH_VERSION} && \
./autogen.sh && \
./configure && \
make install
#
# install stock varnish module library
#
ENV VARNISHMODULES_BRANCH=6.0-lts
ENV VARNISHMODULES_COMMIT=d472c29300ffa1ea5d0916125d449ba43a64f1bd
RUN cd /usr/local/src/ && \
git clone -b ${VARNISHMODULES_BRANCH} https://github.com/varnish/varnish-modules.git && \
cd varnish-modules && \
git reset --hard ${VARNISHMODULES_COMMIT} && \
./bootstrap && \
./configure && \
make install && \
cd /usr/local/src && \
rm -rf varnish-modules && \
ldconfig
#
# install libvmod-dynamic
#
ENV LIBVMOD_DYNAMIC_BRANCH=6.0
ENV LIBVMOD_DYNAMIC_COMMIT=17c1fea935a2e2bc51c323069c66a77b6529d6ef
RUN cd /usr/local/src/ && \
git clone -b ${LIBVMOD_DYNAMIC_BRANCH} https://github.com/nigoroll/libvmod-dynamic.git && \
cd libvmod-dynamic && \
git reset --hard ${LIBVMOD_DYNAMIC_COMMIT} && \
./autogen.sh && \
./configure && \
make install && \
cd /usr/local/src && \
rm -rf libvmod-dynamic && \
ldconfig
#
# install libvmod-digest
#
ENV LIBVMOD_DIGEST_VERSION=1.0.3
ENV LIBVMOD_DIGEST_SHA256SUM=872fd18aa672609195c0dc128ca29e1a1b3a11924c71a34ed7fd956f9177111c
RUN cd /usr/local/src/ && \
curl -sfLO https://github.com/varnish/libvmod-digest/archive/libvmod-digest-${LIBVMOD_DIGEST_VERSION}.tar.gz && \
echo "${LIBVMOD_DIGEST_SHA256SUM} libvmod-digest-${LIBVMOD_DIGEST_VERSION}.tar.gz" | sha256sum -c - && \
tar -xzf libvmod-digest-${LIBVMOD_DIGEST_VERSION}.tar.gz && \
cd libvmod-digest-libvmod-digest-${LIBVMOD_DIGEST_VERSION} && \
./autogen.sh && \
./configure && \
make install && \
cd /usr/local/src && \
rm -rf libvmod-digest* && \
ldconfig
#
# install libvmod-querystring
#
ENV LIBVMOD_QUERYSTRING_VERSION=2.0.3
ENV LIBVMOD_QUERYSTRING_SHA256SUM=ec325d64241580ed136660f1d27cecd874b663431ac3abdb2d28e1ac6f4811e4
RUN cd /usr/local/src/ && \
curl -sfLO https://github.com/Dridi/libvmod-querystring/releases/download/v${LIBVMOD_QUERYSTRING_VERSION}/vmod-querystring-${LIBVMOD_QUERYSTRING_VERSION}.tar.gz && \
echo "${LIBVMOD_QUERYSTRING_SHA256SUM} vmod-querystring-${LIBVMOD_QUERYSTRING_VERSION}.tar.gz" | sha256sum -c - && \
tar -xzf vmod-querystring-${LIBVMOD_QUERYSTRING_VERSION}.tar.gz && \
cd vmod-querystring-${LIBVMOD_QUERYSTRING_VERSION} && \
./configure && \
make install && \
cd /usr/local/src && \
rm -rf vmod-querystring* && \
ldconfig
# init
COPY init.sh /init.sh
RUN useradd -r -s /bin/false vcache
RUN mkdir /etc/varnish
ENV VARNISH_CONFIG /etc/varnish/default.vcl
ENV VARNISH_STORAGE malloc,100m
ENV VARNISH_LISTEN :80
ENV VARNISH_MANAGEMENT_LISTEN 127.0.0.1:6082
EXPOSE 80
EXPOSE 6082
CMD ["/init.sh"]