Build su-exec and tini from source
This commit is contained in:
parent
8d84007b1e
commit
81709cb455
26
Dockerfile
26
Dockerfile
@ -26,11 +26,6 @@ RUN mkdir -p dev etc home proc root tmp usr/{bin,lib/pkgconfig,lib32} var && \
|
|||||||
ln -sv usr/bin sbin && \
|
ln -sv usr/bin sbin && \
|
||||||
ln -sv bin usr/sbin
|
ln -sv bin usr/sbin
|
||||||
|
|
||||||
# Pull tini and su-exec utilities
|
|
||||||
RUN curl -fL https://github.com/frebib/su-exec/releases/download/v${SU_EXEC_VER}/su-exec-x86_64 > sbin/su-exec && \
|
|
||||||
curl -fL https://github.com/krallin/tini/releases/download/v${TINI_VER}/tini-amd64 > sbin/tini && \
|
|
||||||
chmod +x sbin/su-exec sbin/tini
|
|
||||||
|
|
||||||
WORKDIR /tmp/glibc/build
|
WORKDIR /tmp/glibc/build
|
||||||
|
|
||||||
# Download and build glibc from source
|
# Download and build glibc from source
|
||||||
@ -84,6 +79,27 @@ RUN curl -fL https://busybox.net/downloads/busybox-${BUSYB_VER}.tar.bz2 \
|
|||||||
# "Install" busybox, creating symlinks to all binaries it provides
|
# "Install" busybox, creating symlinks to all binaries it provides
|
||||||
./busybox --list-full | xargs -i ln -s /bin/busybox "${PREFIX}/{}"
|
./busybox --list-full | xargs -i ln -s /bin/busybox "${PREFIX}/{}"
|
||||||
|
|
||||||
|
WORKDIR /tmp/su-exec
|
||||||
|
|
||||||
|
# Download and build su-exec from source
|
||||||
|
RUN apt-get -y install xxd
|
||||||
|
RUN curl -fL https://github.com/frebib/su-exec/archive/v${SU_EXEC_VER}.tar.gz \
|
||||||
|
| tar xz --strip-components=1 && \
|
||||||
|
make && \
|
||||||
|
strip -s su-exec && \
|
||||||
|
mv su-exec "${PREFIX}/sbin"
|
||||||
|
|
||||||
|
WORKDIR /tmp/tini
|
||||||
|
|
||||||
|
# Download and build tini from source
|
||||||
|
ADD tini-gnudef.patch /tmp
|
||||||
|
RUN curl -fL https://github.com/krallin/tini/archive/v${TINI_VER}.tar.gz \
|
||||||
|
| tar xz --strip-components=1 && \
|
||||||
|
patch -p1 < /tmp/tini-gnudef.patch && \
|
||||||
|
cmake . && \
|
||||||
|
make tini && \
|
||||||
|
mv tini "${PREFIX}/sbin"
|
||||||
|
|
||||||
WORKDIR $PREFIX
|
WORKDIR $PREFIX
|
||||||
|
|
||||||
# Generate initial ld.so.cache so ELF binaries work.
|
# Generate initial ld.so.cache so ELF binaries work.
|
||||||
|
12
tini-gnudef.patch
Normal file
12
tini-gnudef.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/src/tini.c b/src/tini.c
|
||||||
|
index 3ad8232..77f7caa 100644
|
||||||
|
--- a/src/tini.c
|
||||||
|
+++ b/src/tini.c
|
||||||
|
@@ -1,5 +1,7 @@
|
||||||
|
/* See LICENSE file for copyright and license details. */
|
||||||
|
+#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
Loading…
Reference in New Issue
Block a user