mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
90 lines
2.4 KiB
Docker
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"]
|