-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
72 lines (66 loc) · 2.56 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
FROM debian:buster-slim
LABEL \
maintainer="Tarbase <[email protected]>" \
vendor="Tarbase" \
cmd="docker container run --detach --publish 2375:2375/tcp --privileged tarbase/docker" \
params=""
EXPOSE \
2375/tcp
ENV LANG=C.UTF-8
COPY files/ /root/
RUN \
# copy scripts
install --owner=root --group=root --mode=0755 --target-directory=/usr/bin /root/scripts/* && \
# copy tests
install --owner=root --group=root --mode=0755 --target-directory=/usr/bin /root/tests/* && \
# dependencies
apt-get -qq update && \
apt-get -qq -y --no-install-recommends install \
apt-transport-https \
ca-certificates \
> /dev/null 2>&1 && \
dpkg-query --show -f='${Package}\n' > /tmp/dependencies.pre && \
apt-get -qq -y --no-install-recommends install \
curl \
dirmngr \
gpg \
gpg-agent \
software-properties-common \
> /dev/null 2>&1 && \
dpkg-query --show -f='${Package}\n' > /tmp/dependencies.post && \
# repos
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' \
> /etc/apt/sources.list.d/docker.list && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com --receive-keys --recv 0x8d81803c0ebfcd88 && \
apt-get -qq update && \
# docker-compose
compose_version="$(curl --silent --location --retry 3 'https://api.github.com/repos/docker/compose/releases/latest' | sed -E -n -e '/tag_name/ s/.*"(.*)",/\1/p')" && \
curl --silent --location --retry 3 "https://github.com/docker/compose/releases/download/${compose_version}/docker-compose-$(uname -s)-$(uname -m)" --output "/usr/bin/docker-compose" && \
chmod 0755 "/usr/bin/docker-compose" && \
# dependencies cleanup
apt-get -qq -y purge \
$(diff --changed-group-format='%>' --unchanged-group-format='' /tmp/dependencies.pre /tmp/dependencies.post | xargs) \
> /dev/null 2>&1 && \
# docker
apt-get -qq -y --no-install-recommends install \
containerd.io \
docker-ce \
docker-ce-cli \
> /dev/null 2>&1 && \
# system settings
install --directory --owner=root --group=root --mode=0755 /build/run/systemd && \
echo 'docker' > /build/run/systemd/container && \
# system cleanup
apt-get clean && \
rm -rf /usr/share/info/* && \
rm -rf /usr/share/locale/* && \
rm -rf /usr/share/man/* && \
rm -rf /var/cache/apt/* && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/log/* && \
rm -rf /root/.??* && \
rm -rf /tmp/.??* /tmp/* && \
find /usr/share/doc -mindepth 1 -not -type d -not -name 'copyright' -delete && \
find /usr/share/doc -mindepth 1 -type d -empty -delete && \
find /var/cache -type f -delete
ENTRYPOINT ["/usr/bin/entrypoint"]