Skip to content

Commit

Permalink
Remove unused packages in docker images and host (sonic-net#2807)
Browse files Browse the repository at this point in the history
* Remove unneeded packages in docker images and host
* Remove libpython3.6 from snmp docker image
  • Loading branch information
qiluo-msft authored and MichelMoriniaux committed May 28, 2019
1 parent b73af5e commit 99145ce
Show file tree
Hide file tree
Showing 9 changed files with 16 additions and 10 deletions.
4 changes: 4 additions & 0 deletions dockers/docker-base/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ RUN apt-get -y install {{ dbg_pkg }}
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
Expand Down
2 changes: 1 addition & 1 deletion dockers/docker-config-engine-stretch/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ python-wheels/{{ whl }}{{' '}}
{%- endif -%}

## Clean up
RUN apt-get remove -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN apt-get purge -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN rm -rf /debs /python-wheels
2 changes: 1 addition & 1 deletion dockers/docker-config-engine/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ python-wheels/{{ whl }}{{' '}}
{%- endif -%}

## Clean up
RUN apt-get remove -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN apt-get purge -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN rm -rf /debs /python-wheels
2 changes: 1 addition & 1 deletion dockers/docker-lldp-sv2/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RUN pip install /python-wheels/{{ whl }}
{% endif %}

# Clean up
RUN apt-get remove -y python-pip
RUN apt-get purge -y python-pip
RUN apt-get clean -y
RUN apt-get autoclean -y
RUN apt-get autoremove -y
Expand Down
2 changes: 1 addition & 1 deletion dockers/docker-platform-monitor/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RUN pip install /python-wheels/{{ whl }}
{% endif %}

# Clean up
RUN apt-get remove -y python-pip
RUN apt-get purge -y python-pip
RUN apt-get clean -y
RUN apt-get autoclean -y
RUN apt-get autoremove -y
Expand Down
4 changes: 3 additions & 1 deletion dockers/docker-snmp-sv2/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ RUN pip install /python-wheels/{{ whl }}
RUN python3.6 -m sonic_ax_impl install

# Clean up
RUN apt-get -y purge libpython3.6-dev curl gcc make libdpkg-perl
RUN apt-get -y purge libpython3.6-dev libpython3.6 curl gcc make libdpkg-perl
# Note: these packages should be removed with autoremove but actually not, so explicitly purged
RUN apt-get -y purge libldap-2.4-2 libsasl2-2 libsasl2-modules libsasl2-modules-db
RUN apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y --purge
RUN find / | grep -E "__pycache__" | xargs rm -rf
RUN rm -rf /debs /python-wheels ~/.cache
Expand Down
4 changes: 2 additions & 2 deletions dockers/docker-sonic-mgmt/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ RUN apt-get install -y default-jre
RUN apt-get install -y rsyslog psmisc

# Remove cffi 1.5.2, will install 1.10.0 by pip later
RUN apt-get remove -y python-cffi python-cffi-backend
RUN apt-get purge -y python-cffi python-cffi-backend
# Remove pycparser 2.14, will install >=2.17 by pip later
RUN apt-get remove -y python-ply python-pycparser
RUN apt-get purge -y python-ply python-pycparser

RUN easy_install pip

Expand Down
2 changes: 1 addition & 1 deletion files/build_templates/sonic_debian_extension.j2
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ sudo LANG=C cp $SCRIPTS_DIR/syncd.sh $FILESYSTEM_ROOT/usr/local/bin/syncd.sh
sudo cp $BUILD_TEMPLATES/snmp.timer $FILESYSTEM_ROOT/etc/systemd/system/
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable snmp.timer

sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get remove -y python-dev
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get purge -y python-dev
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get clean -y
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get autoremove -y

Expand Down
4 changes: 2 additions & 2 deletions rules/python3.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ $(PY3_MIN)_RDEPENDS += $(LIBPY3_MIN)

PY3 = $(PYTHON_PNAME)_$(PYTHON_VER)_amd64.deb
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(PY3)))
$(PY3)_DEPENDS += $(PY3_MIN) $(LIBPY3)
$(PY3)_RDEPENDS += $(PY3_MIN) $(LIBPY3) $(LIBPY3_MIN)
$(PY3)_DEPENDS += $(PY3_MIN) $(LIBPY3_STD)
$(PY3)_RDEPENDS += $(PY3_MIN) $(LIBPY3_STD)

LIBPY3_DEV = lib$(PYTHON_PNAME)-dev_$(PYTHON_VER)_amd64.deb
$(eval $(call add_derived_package,$(LIBPY3_MIN),$(LIBPY3_DEV)))
Expand Down

0 comments on commit 99145ce

Please sign in to comment.