docker: add docker image for building
parent
6db0b29c98
commit
175bc9c8ed
@ -0,0 +1,83 @@
|
||||
FROM debian:10
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install --no-install-suggests --no-install-recommends -y \
|
||||
apt-utils \
|
||||
libnss-wrapper \
|
||||
&& apt-get install --no-install-suggests --no-install-recommends -y \
|
||||
build-essential \
|
||||
net-tools \
|
||||
autoconf \
|
||||
m4 \
|
||||
bison \
|
||||
flex \
|
||||
g++ \
|
||||
libtool \
|
||||
sqlite \
|
||||
gcc \
|
||||
binutils \
|
||||
patch \
|
||||
bzip2 \
|
||||
make \
|
||||
gettext \
|
||||
unzip \
|
||||
zlib1g-dev \
|
||||
libc6 \
|
||||
gperf \
|
||||
automake \
|
||||
groff \
|
||||
lib32stdc++6 \
|
||||
libncurses5 \
|
||||
libncurses5-dev \
|
||||
gawk \
|
||||
gitk \
|
||||
zlib1g-dev \
|
||||
autopoint \
|
||||
shtool \
|
||||
autogen \
|
||||
mtd-utils \
|
||||
gcc-multilib \
|
||||
gconf-editor \
|
||||
lib32z1-dev \
|
||||
pkg-config \
|
||||
libssl-dev \
|
||||
automake1.11 \
|
||||
libmnl-dev \
|
||||
libxml2-dev \
|
||||
intltool \
|
||||
libglib2.0-dev \
|
||||
libstdc++5 \
|
||||
texinfo \
|
||||
dos2unix \
|
||||
xsltproc \
|
||||
libnfnetlink0 \
|
||||
libcurl4-openssl-dev \
|
||||
libgtk2.0-dev \
|
||||
libnotify-dev \
|
||||
libevent-dev \
|
||||
git \
|
||||
re2c \
|
||||
texlive \
|
||||
libelf1 \
|
||||
nodejs \
|
||||
zip \
|
||||
mc \
|
||||
cmake \
|
||||
curl \
|
||||
linux-headers-4.19.0-9-all \
|
||||
&& dpkg --add-architecture i386 \
|
||||
&& apt-get update \
|
||||
&& apt-get install --no-install-suggests --no-install-recommends -y \
|
||||
libelf1:i386 \
|
||||
libelf-dev:i386 \
|
||||
&& apt-get remove -y 'libicu-dev*' 'uuid-dev*' \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY nss_wrapper /usr/bin/
|
||||
|
||||
# Map user and dont run as root
|
||||
USER 65534
|
||||
ENTRYPOINT ["nss_wrapper"]
|
||||
CMD ["bash"]
|
@ -0,0 +1,21 @@
|
||||
VERSION ?= latest
|
||||
DOCKER ?= docker
|
||||
IMG_NAME ?= freshtomato
|
||||
|
||||
build_freshtomato: .freshtomato.docker_built
|
||||
|
||||
.freshtomato.docker_built: Dockerfile nss_wrapper
|
||||
$(DOCKER) build -t $(IMG_NAME):$(VERSION) .
|
||||
touch .freshtomato.docker_built
|
||||
|
||||
run_freshtomato: .freshtomato.docker_built
|
||||
$(DOCKER) run -v $(abspath ../):/ws -it --user $(shell id -u):$(shell id -g) $(IMG_NAME):$(VERSION) /bin/bash
|
||||
|
||||
build.%: .freshtomato.docker_built
|
||||
$(DOCKER) run -v $(abspath ../):/ws -it --user $(shell id -u):$(shell id -g) $(IMG_NAME):$(VERSION) make -C /ws/release/src-rt-6.x.4708 $(subst build.,,$@)
|
||||
|
||||
clean:
|
||||
rm -f .freshtomato.docker_built
|
||||
|
||||
help:
|
||||
@make -s -C ../release/src-rt-6.x.4708 help | sed 's,^[a-z],build.&,g'
|
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set current user in nss_wrapper
|
||||
USER_ID=$(id -u)
|
||||
GROUP_ID=$(id -g)
|
||||
|
||||
if [ x"$USER_ID" != x"0" ]; then
|
||||
|
||||
NSS_WRAPPER_PASSWD=/tmp/passwd
|
||||
NSS_WRAPPER_GROUP=/etc/group
|
||||
|
||||
cat /etc/passwd > $NSS_WRAPPER_PASSWD
|
||||
|
||||
echo "default:x:${USER_ID}:${GROUP_ID}:Default Build User:${HOME}:/bin/bash" >> $NSS_WRAPPER_PASSWD
|
||||
|
||||
export NSS_WRAPPER_PASSWD
|
||||
export NSS_WRAPPER_GROUP
|
||||
|
||||
export LD_PRELOAD=libnss_wrapper.so
|
||||
fi
|
||||
|
||||
exec "$@"
|
Loading…
Reference in New Issue