updated dockerfiles to run commands to save space optimally

This commit is contained in:
Blake Harnden 2023-03-02 08:34:54 -08:00
parent fec400ac2e
commit d45eeb6d2e
8 changed files with 223 additions and 433 deletions

View file

@ -2,45 +2,74 @@
FROM ubuntu:22.04
LABEL Description="CORE Docker Ubuntu Image"
# define environment
ENV DEBIAN_FRONTEND=noninteractive
ARG PROTOC_VERSION=3.19.6
ARG VENV_PATH=/opt/core/venv
ENV PATH="$PATH:${VENV_PATH}/bin"
WORKDIR /opt
# install basic dependencies
RUN apt-get update && apt-get install -y python3 python3-tk python3-pip python3-venv
RUN python3 -m pip install --upgrade pip
RUN apt-get update -y && \
apt-get install -y --no-install-recommends \
ca-certificates \
python3 \
python3-tk \
python3-pip \
python3-venv \
libpcap-dev \
libpcre3-dev \
libprotobuf-dev \
libxml2-dev \
protobuf-compiler \
unzip \
uuid-dev \
automake \
gawk \
git \
wget \
libreadline-dev \
libtool \
pkg-config \
g++ \
make \
iputils-ping \
tcpdump && \
apt-get autoremove -y
# install core
WORKDIR /opt/core
COPY core_*.deb .
RUN apt-get install -y ./core_*.deb
ENV PATH "$PATH:/opt/core/venv/bin"
RUN apt-get install -y ./core_*.deb && \
rm -f core_*.deb
# install ospf mdr
RUN apt-get install -y automake gawk git libreadline-dev libtool pkg-config
WORKDIR /opt
RUN git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git
RUN cd ospf-mdr && \
./bootstrap.sh && \
./configure --disable-doc --enable-user=root --enable-group=root \
--with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \
--localstatedir=/var/run/quagga && \
make -j$(nproc) && \
make install
RUN git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \
cd ospf-mdr && \
./bootstrap.sh && \
./configure --disable-doc --enable-user=root --enable-group=root \
--with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \
--localstatedir=/var/run/quagga && \
make -j$(nproc) && \
make install && \
cd /opt && \
rm -rf ospf-mdr
# install emane
RUN apt-get install -y libpcap-dev libpcre3-dev libprotobuf-dev libxml2-dev protobuf-compiler unzip uuid-dev
WORKDIR /opt
RUN git clone https://github.com/adjacentlink/emane.git
RUN cd emane && \
./autogen.sh && \
./configure --prefix=/usr && \
make -j$(nproc) && \
make install
RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip && \
RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip && \
mkdir protoc && \
unzip protoc-3.19.6-linux-x86_64.zip -d protoc
RUN PATH=/opt/protoc/bin:$PATH && \
cd emane/src/python && \
make clean && \
make
RUN /opt/core/venv/bin/python -m pip install emane/src/python
unzip protoc-${PROTOC_VERSION}-linux-x86_64.zip -d protoc && \
git clone https://github.com/adjacentlink/emane.git && \
cd emane && \
./autogen.sh && \
./configure --prefix=/usr && \
make -j$(nproc) && \
make install && \
cd src/python && \
make clean && \
PATH=/opt/protoc/bin:$PATH make && \
${VENV_PATH}/bin/python -m pip install . && \
cd /opt && \
rm -rf protoc && \
rm -rf emane && \
rm -f protoc-${PROTOC_VERSION}-linux-x86_64.zip
WORKDIR /root