-
Notifications
You must be signed in to change notification settings - Fork 1
/
alpine_3_17.Dockerfile
47 lines (47 loc) · 1.52 KB
/
alpine_3_17.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
FROM alpine:3.17
ADD bin /usr/local/bin
ENTRYPOINT [ "docker_entrypoint.sh" ]
ENV HOME=/home
MAINTAINER RekGRpth
WORKDIR "$HOME"
RUN set -eux; \
ln -fs su-exec /sbin/gosu; \
chmod +x /usr/local/bin/*.sh; \
apk update --no-cache; \
apk upgrade --no-cache; \
apk add --no-cache --virtual .build \
ca-certificates \
cmake \
findutils \
gcc \
gettext-dev \
git \
libintl \
make \
musl-dev \
openssl-dev \
; \
mkdir -p "$HOME/src"; \
cd "$HOME/src"; \
git clone --branch master --recurse-submodules https://github.com/RekGRpth/engine.git; \
cd "$HOME/src/engine"; \
cmake .; \
make -j"$(nproc)" install; \
apk add --no-cache --virtual .gost \
busybox-extras \
busybox-suid \
ca-certificates \
musl-locales \
shadow \
su-exec \
tzdata \
$(scanelf --needed --nobanner --format '%n#p' --recursive /usr/local | tr ',' '\n' | grep -v "^$" | grep -v -e libcrypto | sort -u | while read -r lib; do test -z "$(find /usr/local/lib -name "$lib")" && echo "so:$lib"; done) \
; \
find /usr/local/bin -type f -exec strip '{}' \;; \
find /usr/local/lib -type f -name "*.so" -exec strip '{}' \;; \
strip /usr/lib/engines*/gost.so*; \
apk del --no-cache .build; \
docker_gost.sh /etc/ssl/openssl.cnf; \
rm -rf "$HOME" /usr/share/doc /usr/share/man /usr/local/share/doc /usr/local/share/man; \
find /usr -type f -name "*.la" -delete; \
echo done