a0fde3a626
- Support compile sonic arm image on arm server. If arm image compiling is executed on arm server instead of using qemu mode on x86 server, compile time can be saved significantly. - Add kernel argument systemd.unified_cgroup_hierarchy=0 for upgrade systemd to version 247, according to #7228 - rename multiarch docker to sonic-slave-${distro}-march-${arch} Co-authored-by: Xianghong Gu <xgu@centecnetworks.com> Co-authored-by: Shi Lei <shil@centecnetworks.com>
108 lines
3.3 KiB
Django/Jinja
108 lines
3.3 KiB
Django/Jinja
{% if CONFIGURED_ARCH == "armhf" and MULTIARCH_QEMU_ENVIRON == "y" %}
|
|
FROM multiarch/debian-debootstrap:armhf-jessie
|
|
{% elif CONFIGURED_ARCH == "arm64" and MULTIARCH_QEMU_ENVIRON == "y" %}
|
|
FROM multiarch/debian-debootstrap:arm64-jessie
|
|
{% else %}
|
|
FROM debian:jessie
|
|
{% endif %}
|
|
|
|
## Remove retired jessie-updates repo
|
|
RUN sed -i '/http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
|
|
|
|
# Clean documentation in FROM image
|
|
RUN find /usr/share/doc -depth \( -type f -o -type l \) ! -name copyright | xargs rm || true
|
|
|
|
# Clean doc directories that are empty or only contain empty directories
|
|
RUN while [ -n "$(find /usr/share/doc -depth -type d -empty -print -exec rmdir {} +)" ]; do :; done
|
|
RUN rm -rf \
|
|
/usr/share/man/* \
|
|
/usr/share/groff/* \
|
|
/usr/share/info/* \
|
|
/usr/share/lintian/* \
|
|
/usr/share/linda/* \
|
|
/var/cache/man/* \
|
|
/usr/share/locale/*
|
|
|
|
# Make apt-get non-interactive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Configure data sources for apt/dpkg
|
|
COPY ["dpkg_01_drop", "/etc/dpkg/dpkg.cfg.d/01_drop"]
|
|
{% if CONFIGURED_ARCH == "armhf" %}
|
|
COPY ["sources.list.armhf", "/etc/apt/sources.list"]
|
|
{% elif CONFIGURED_ARCH == "arm64" %}
|
|
COPY ["sources.list.arm64", "/etc/apt/sources.list"]
|
|
COPY ["no-check-valid-until", "/etc/apt/apt.conf.d"]
|
|
{% else %}
|
|
COPY ["sources.list", "/etc/apt/sources.list"]
|
|
{% endif %}
|
|
COPY ["no_install_recommend_suggest", "/etc/apt/apt.conf.d"]
|
|
RUN apt-get update
|
|
|
|
# Pre-install fundamental packages
|
|
RUN apt-get -y install \
|
|
vim-tiny \
|
|
perl \
|
|
python \
|
|
python-pip \
|
|
rsyslog \
|
|
less
|
|
|
|
COPY ["etc/rsyslog.conf", "/etc/rsyslog.conf"]
|
|
COPY ["etc/rsyslog.d/*", "/etc/rsyslog.d/"]
|
|
COPY ["root/.vimrc", "/root/.vimrc"]
|
|
|
|
RUN pip install --upgrade 'pip<21'
|
|
RUN apt-get purge -y python-pip
|
|
|
|
# Some Python packages require setuptools (or pkg_resources, which is supplied by setuptools)
|
|
# and some require wheel
|
|
RUN pip install setuptools==40.8.0
|
|
RUN pip install wheel
|
|
|
|
# Install supervisor
|
|
RUN pip install supervisor>=3.4.0
|
|
|
|
RUN mkdir -p /etc/supervisor
|
|
RUN mkdir -p /var/log/supervisor
|
|
|
|
COPY ["etc/supervisor/supervisord.conf", "/etc/supervisor/"]
|
|
|
|
RUN apt-get -y purge \
|
|
exim4 \
|
|
exim4-base \
|
|
exim4-config \
|
|
exim4-daemon-light
|
|
|
|
{% if docker_base_debs.strip() -%}
|
|
# Copy built Debian packages
|
|
{%- for deb in docker_base_debs.split(' ') %}
|
|
COPY debs/{{ deb }} debs/
|
|
{%- endfor %}
|
|
|
|
# Install built Debian packages and implicitly install their dependencies
|
|
{%- for deb in docker_base_debs.split(' ') %}
|
|
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt debs/{{ deb }}
|
|
{%- endfor %}
|
|
{%- endif %}
|
|
|
|
{% if docker_base_dbgs.strip() -%}
|
|
# Install common debug-packages
|
|
{%- for dbg_pkg in docker_base_dbgs.split(' ') %}
|
|
RUN apt-get -y install {{ dbg_pkg }}
|
|
{%- endfor %}
|
|
{% else %}
|
|
RUN ln /usr/bin/vim.tiny /usr/bin/vim
|
|
{%- endif %}
|
|
|
|
# Remove python3.4
|
|
# Note: if later python3 is required by more docker images, consider install homebrew python3 here instead of in SNMP image only
|
|
RUN apt-get purge -y libpython3.4-minimal
|
|
|
|
# Clean up apt
|
|
# Remove /var/lib/apt/lists/*, could be obsoleted for derived images
|
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
RUN rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN rm -rf /tmp/*
|