USER airflow
-ARG PYTHON3_OSM_COMMON_URL
+# Install base requirements
+RUN pip install --no-cache-dir setuptools-scm wheel
+
+# Install OSM common from Git
+ARG COMMON_GERRIT_REFSPEC=master
+RUN git clone --filter=blob:none --tags https://osm.etsi.org/gerrit/osm/common.git /tmp/osm-common && \
+ cd /tmp/osm-common && \
+ git fetch origin ${COMMON_GERRIT_REFSPEC} && \
+ git checkout FETCH_HEAD && \
+ cd - && \
+ pip3 wheel --no-cache-dir -r /tmp/osm-common/requirements.txt -w /tmp/wheels && \
+ pip3 wheel --no-cache-dir /tmp/osm-common -w /tmp/wheels
+RUN pip install --no-cache-dir --no-index --find-links=/tmp/wheels \
+ -r /tmp/osm-common/requirements.txt \
+ osm_common && \
+ rm -rf /tmp/wheels
+
ARG PYTHON3_OSM_NGSA_URL
-RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
RUN curl $PYTHON3_OSM_NGSA_URL -o osm_ngsa.deb
-RUN ar x osm_common.deb && \
- zstd -d < control.tar.zst | xz > control.tar.xz && \
- zstd -d < data.tar.zst | xz > data.tar.xz && \
- ar -m -c -a sdsd osm_common_repacked.deb debian-binary control.tar.xz data.tar.xz && \
- rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
RUN ar x osm_ngsa.deb && \
zstd -d < control.tar.zst | xz > control.tar.xz && \
zstd -d < data.tar.zst | xz > data.tar.xz && \
rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
RUN mkdir /tmp/osm
-RUN dpkg-deb -x osm_common_repacked.deb /tmp/osm
RUN dpkg-deb -x osm_ngsa_repacked.deb /tmp/osm
RUN mv /tmp/osm/usr/lib/python3/dist-packages/* /home/airflow/.local/lib/python3.10/site-packages/
RUN rm -rf /tmp/osm
RUN pip3 install \
- -r /home/airflow/.local/lib/python3.10/site-packages/osm_common/requirements.txt \
-r /home/airflow/.local/lib/python3.10/site-packages/osm_ngsa/requirements.txt
apt-transport-https=2.4.* \
gnupg2=2.2.* \
openssh-client=1:8.* \
+ git \
&& rm -rf /var/lib/apt/lists/*
# https://kubernetes.io/releases/
&& mv linux-amd64/helm /usr/local/bin/helm3 \
&& rm -r linux-amd64/
-ARG PYTHON3_OSM_COMMON_URL
-ARG PYTHON3_OSM_LCM_URL
-
-RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
-RUN dpkg -i ./osm_common.deb
+ARG COMMON_GERRIT_REFSPEC=master
+RUN git clone --filter=blob:none --tags https://osm.etsi.org/gerrit/osm/common.git /tmp/osm-common && \
+ cd /tmp/osm-common && \
+ git fetch origin ${COMMON_GERRIT_REFSPEC} && \
+ git checkout FETCH_HEAD && \
+ cd - && \
+ pip install --no-cache-dir -r /tmp/osm-common/requirements.txt && \
+ pip install /tmp/osm-common
+ARG PYTHON3_OSM_LCM_URL
RUN curl $PYTHON3_OSM_LCM_URL -o osm_lcm.deb
RUN dpkg -i ./osm_lcm.deb
RUN pip3 install \
- -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_lcm/requirements.txt
#######################################################################################
RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
- openssh-client=1:8.*
+ openssh-client=1:8.* git
-ARG PYTHON3_OSM_COMMON_URL
-ARG PYTHON3_OSM_MON_URL
-
-RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
-RUN dpkg -i ./osm_common.deb
+ARG COMMON_GERRIT_REFSPEC=master
+RUN git clone --filter=blob:none --tags https://osm.etsi.org/gerrit/osm/common.git /tmp/osm-common && \
+ cd /tmp/osm-common && \
+ git fetch origin ${COMMON_GERRIT_REFSPEC} && \
+ git checkout FETCH_HEAD && \
+ cd - && \
+ pip install --no-cache-dir -r /tmp/osm-common/requirements.txt && \
+ pip install /tmp/osm-common
+ARG PYTHON3_OSM_MON_URL
RUN curl $PYTHON3_OSM_MON_URL -o osm_mon.deb
RUN dpkg -i ./osm_mon.deb
RUN pip3 install \
- -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_mon/requirements.txt
#######################################################################################
#######################################################################################
# End of common preparation
-ARG PYTHON3_OSM_COMMON_URL
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+ DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+ git \
+ && rm -rf /var/lib/apt/lists/*
+
+ARG COMMON_GERRIT_REFSPEC=master
+RUN git clone --filter=blob:none --tags https://osm.etsi.org/gerrit/osm/common.git /tmp/osm-common && \
+ cd /tmp/osm-common && \
+ git fetch origin ${COMMON_GERRIT_REFSPEC} && \
+ git checkout FETCH_HEAD && \
+ cd - && \
+ pip install --no-cache-dir -r /tmp/osm-common/requirements.txt && \
+ pip install /tmp/osm-common
+
ARG PYTHON3_OSM_IM_URL
ARG PYTHON3_OSM_NBI_URL
-RUN curl $PYTHON3_OSM_COMMON_URL -o osm_common.deb
-RUN dpkg -i ./osm_common.deb
-
RUN curl $PYTHON3_OSM_IM_URL -o osm_im.deb
RUN dpkg -i ./osm_im.deb
RUN dpkg -i ./osm_nbi.deb
RUN pip3 install \
- -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_im/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_nbi/requirements.txt
DEBIAN_FRONTEND=noninteractive apt-get --yes install \
genisoimage=9:1.1.* \
libmagic1 \
- netbase=6.*
+ netbase=6.* \
+ git
+
+ARG COMMON_GERRIT_REFSPEC=master
+RUN git clone --filter=blob:none --tags https://osm.etsi.org/gerrit/osm/common.git /tmp/osm-common && \
+ cd /tmp/osm-common && \
+ git fetch origin ${COMMON_GERRIT_REFSPEC} && \
+ git checkout FETCH_HEAD && \
+ cd - && \
+ pip install --no-cache-dir -r /tmp/osm-common/requirements.txt && \
+ pip install /tmp/osm-common
-ARG PYTHON3_OSM_COMMON_URL
ARG PYTHON3_OSM_NG_RO_URL
ARG PYTHON3_OSM_RO_PLUGIN_URL
ARG PYTHON3_OSM_ROSDN_ARISTA_CLOUDVISION_URL
ARG PYTHON3_OSM_ROVIM_VMWARE_URL
RUN for URL in \
- $PYTHON3_OSM_COMMON_URL \
$PYTHON3_OSM_NG_RO_URL \
$PYTHON3_OSM_RO_PLUGIN_URL \
$PYTHON3_OSM_ROSDN_ARISTA_CLOUDVISION_URL \
RUN dpkg -i *.deb
RUN pip3 install \
- -r /usr/lib/python3/dist-packages/osm_common/requirements.txt \
-r /usr/lib/python3/dist-packages/osm_ng_ro/requirements.txt
#######################################################################################