public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Trace
data/Dockerfiles/clamd/Dockerfile
Trace helps you understand code history line by line. See who changed each line, when it changed, and which commit introduced it.
Author
Date
Commit
Line
Code
1
FROM alpine:3.21 AS builder
3
WORKDIR /src
4
ENV CLAMD_VERSION=1.4.2
6
RUN apk upgrade --no-cache \
7
&& apk add --update --no-cache \
8
g++ \
9
gcc \
10
gdb \
11
make \
12
cmake \
13
py3-pytest \
14
python3 \
15
valgrind \
16
bzip2-dev \
17
check-dev \
18
curl-dev \
19
json-c-dev \
20
libmilter-dev \
21
libxml2-dev \
22
linux-headers \
23
ncurses-dev \
24
openssl-dev \
25
pcre2-dev \
26
zlib-dev \
27
cargo \
28
rust
30
RUN wget -P /src https://www.clamav.net/downloads/production/clamav-${CLAMD_VERSION}.tar.gz \
31
&& tar xzfv /src/clamav-${CLAMD_VERSION}.tar.gz \
32
&& cd /src/clamav-${CLAMD_VERSION} \
33
&& cmake . \
34
-D CMAKE_BUILD_TYPE="Release" \
35
-D CMAKE_INSTALL_PREFIX="/usr" \
36
-D CMAKE_INSTALL_LIBDIR="/usr/lib" \
37
-D APP_CONFIG_DIRECTORY="/etc/clamav" \
38
-D DATABASE_DIRECTORY="/var/lib/clamav" \
39
-D ENABLE_CLAMONACC=OFF \
40
-D ENABLE_EXAMPLES=OFF \
41
-D ENABLE_MILTER=ON \
42
-D ENABLE_MAN_PAGES=OFF \
43
-D ENABLE_STATIC_LIB=OFF \
44
-D ENABLE_JSON_SHARED=ON \
45
&& cmake --build . \
46
&& make DESTDIR="/clamav" -j$(($(nproc) - 1)) install \
47
&& rm -r "/clamav/usr/lib/pkgconfig/" \
48
&& sed -e "s|^\(Example\)|\# \1|" \
49
-e "s|.*\(LocalSocket\) .*|\1 /tmp/clamd.sock|" \
50
-e "s|.*\(TCPSocket\) .*|\1 3310|" \
51
-e "s|.*\(TCPAddr\) .*|#\1 0.0.0.0|" \
52
-e "s|.*\(User\) .*|\1 clamav|" \
53
-e "s|^\#\(LogFile\) .*|\1 /var/log/clamav/clamd.log|" \
54
-e "s|^\#\(LogTime\).*|\1 yes|" \
55
"/clamav/etc/clamav/clamd.conf.sample" > "/clamav/etc/clamav/clamd.conf" \
56
&& sed -e "s|^\(Example\)|\# \1|" \
57
-e "s|.*\(DatabaseOwner\) .*|\1 clamav|" \
58
-e "s|^\#\(UpdateLogFile\) .*|\1 /var/log/clamav/freshclam.log|" \
59
-e "s|^\#\(NotifyClamd\).*|\1 /etc/clamav/clamd.conf|" \
60
-e "s|^\#\(ScriptedUpdates\).*|\1 yes|" \
61
"/clamav/etc/clamav/freshclam.conf.sample" > "/clamav/etc/clamav/freshclam.conf" \
62
&& sed -e "s|^\(Example\)|\# \1|" \
63
-e "s|.*\(MilterSocket\) .*|\1 inet:7357|" \
64
-e "s|.*\(User\) .*|\1 clamav|" \
65
-e "s|^\#\(LogFile\) .*|\1 /var/log/clamav/milter.log|" \
66
-e "s|^\#\(LogTime\).*|\1 yes|" \
67
-e "s|.*\(\ClamdSocket\) .*|\1 unix:/tmp/clamd.sock|" \
68
"/clamav/etc/clamav/clamav-milter.conf.sample" > "/clamav/etc/clamav/clamav-milter.conf" || exit 1
71
FROM alpine:3.21
73
LABEL maintainer = "The Infrastructure Company GmbH <[email protected]>"
75
RUN apk upgrade --no-cache \
76
&& apk add --update --no-cache \
77
tzdata \
78
rsync \
79
bind-tools \
80
bash \
81
tini \
82
json-c \
83
libbz2 \
84
libcurl \
85
libmilter \
86
libxml2 \
87
ncurses-libs \
88
pcre2 \
89
zlib \
90
libgcc \
91
&& addgroup -S "clamav" && \
92
adduser -D -G "clamav" -h "/var/lib/clamav" -s "/bin/false" -S "clamav" && \
93
install -d -m 755 -g "clamav" -o "clamav" "/var/log/clamav" && \
94
chown -R clamav:clamav /var/lib/clamav
96
COPY --from=builder "/clamav" "/"
98
# init
99
COPY clamd.sh /clamd.sh
100
RUN chmod +x /sbin/tini
102
# healthcheck
103
COPY healthcheck.sh /healthcheck.sh
104
COPY clamdcheck.sh /usr/local/bin
105
RUN chmod +x /healthcheck.sh
106
RUN chmod +x /usr/local/bin/clamdcheck.sh
107
HEALTHCHECK --start-period=6m CMD "/healthcheck.sh"
109
ENTRYPOINT []
110
CMD ["/sbin/tini", "-g", "--", "/clamd.sh"]