bbfdm/tools/Dockerfile
2025-04-26 15:10:57 +05:30

90 lines
2.4 KiB
Docker

FROM ubuntu:22.04
LABEL maintainer="vivek.dutta@iopsys.eu"
LABEL build="docker build -t bbfdm-tools ."
LABEL run="docker run -it --rm -v PWD/..:/builds/bbfdm bbfdm-tools"
RUN \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
cmake \
libjson-c-dev \
libssl-dev \
libcurl4-openssl-dev \
pkg-config \
libtool \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
autoconf \
automake \
autotools-dev \
binutils \
net-tools \
curl \
sudo \
git
RUN mkdir /opt/dev
# libubox
ARG LIBUBOX_VERSION=75a3b870cace1171faf57bd55e5a9a2f1564f757
RUN \
cd /opt/dev && \
git clone https://git.openwrt.org/project/libubox.git && \
cd libubox && mkdir build && cd build && \
git checkout ${LIBUBOX_VERSION} && \
cmake -DBUILD_LUA=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE:String="Release" .. && \
make -j2 && \
make install
# uci
ARG UCI_VERSION=5781664d5087ccc4b5ab58505883231212dbedbc
RUN \
cd /opt/dev && \
git clone https://git.openwrt.org/project/uci.git && \
cd uci && \
git checkout ${UCI_VERSION} && \
cmake -DCMAKE_BUILD_TYPE:String="Release" -DBUILD_LUA=OFF . && \
make -j2 && \
make install
# ubus
ARG UBUS_VERSION=f787c97b34894a38b15599886cacbca01271684f
RUN \
cd /opt/dev && \
git clone https://git.openwrt.org/project/ubus.git && \
cd ubus && \
git checkout ${UBUS_VERSION} && \
cmake -DCMAKE_BUILD_TYPE:String="Release" -DBUILD_LUA=OFF -DBUILD_EXAMPLES=OFF . && \
make -j2 && \
make install
# 1. Create new unprivileged user "dev"
# 2. Install fixuid to accomodate for the host machine UID/GID
ARG FIXUID_VERSION=0.5.1
RUN useradd -m -s /bin/bash dev && \
curl -fsSL "https://github.com/boxboat/fixuid/releases/download/v${FIXUID_VERSION}/fixuid-${FIXUID_VERSION}-linux-amd64.tar.gz" | tar -C /usr/local/bin -xzf -
# Copy fixuid configuration
COPY docker/fixuid.yml /etc/fixuid/config.yml
# Copy git configuration to dev's home folder
COPY --chown=dev:dev docker/gitconfig /home/dev/.gitconfig
RUN echo "dev ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/10-dev
ENTRYPOINT ["/usr/local/bin/fixuid", "-q"]
CMD ["bash"]
RUN mkdir -p /builds/bbf/bbfdm /home/dev/.ssh \
&& chown -R dev:dev /builds/bbf/bbfdm \
&& chown -R dev:dev /home/dev \
&& chown -R dev:dev /opt/dev \
&& mkdir -p /usr/share/bbfdm \
&& chown -R dev:dev /usr/share/bbfdm
USER dev:dev
WORKDIR /builds/bbf/bbfdm
VOLUME ["/builds/bbf/bbfdm"]