-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[dockers] Prevent apt-get from installing suggested and recommended packages by default #1666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jleveque
merged 5 commits into
sonic-net:master
from
jleveque:docker_base_apt_no_suggest_recommend
May 2, 2018
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
f8576bf
[docker-base] Instruct apt-get to NOT install 'recommended' or 'sugge…
jleveque 690beae
Modify docker-fpm-quagga Dockerfile in order to properly install .deb…
jleveque 1648a59
Modify docker-snmp-sv2 Dockerfile in order to properly install .deb d…
jleveque c75f360
Modify docker-sonic-vs Dockerfile in order to properly install .deb d…
jleveque ed8f019
REDIS_SERVER depends on REDIS_TOOLS; ensure REDIS_TOOLS is always ins…
jleveque File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Instruct apt-get to NOT install "recommended" or "suggested" packages by | ||
# default when installing a package. | ||
|
||
APT::Install-Recommends "false"; | ||
APT::Install-Suggests "false"; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,64 @@ | ||
FROM docker-config-engine | ||
|
||
COPY [ \ | ||
{% for deb in docker_snmp_sv2_debs.split(' ') -%} | ||
"debs/{{ deb }}", | ||
{%- endfor %} \ | ||
"/debs/"] | ||
|
||
# Install Python SwSSSDK (SNMP subagent dependency) | ||
COPY python-wheels/sonic_platform_common-*-py3-*.whl /python-wheels/ | ||
COPY python-wheels/swsssdk-*-py3-*.whl /python-wheels/ | ||
COPY python-wheels/asyncsnmp-*-py3-*.whl /python-wheels/ | ||
|
||
# enable -O for all Python calls | ||
# Enable -O for all Python calls | ||
ENV PYTHONOPTIMIZE 1 | ||
|
||
## Make apt-get non-interactive | ||
# Make apt-get non-interactive | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# install libsnmp30 dependencies | ||
# install libpython3.6-dev dependencies | ||
# install pip dependencies | ||
# TODO: remove libpython3.6-dev, its and pip's dependencies if we can get pip3 directly | ||
# install subagent | ||
# clean up | ||
RUN apt-get update && apt-get install -y libperl5.20 libpci3 libwrap0 \ | ||
libexpat1-dev \ | ||
curl gcc && \ | ||
dpkg -i \ | ||
{% for deb in docker_snmp_sv2_debs.split(' ') -%} | ||
debs/{{ deb }}{{' '}} | ||
{%- endfor %} && \ | ||
rm -rf /debs && \ | ||
curl https://bootstrap.pypa.io/get-pip.py | python3.6 && \ | ||
python3.6 -m pip install --no-cache-dir /python-wheels/*py3*.whl hiredis && \ | ||
rm -rf /python-wheels && \ | ||
python3.6 -m sonic_ax_impl install && \ | ||
apt-get -y purge libpython3.6-dev libexpat1-dev curl gcc && \ | ||
apt-get clean -y && apt-get autoclean -y && apt-get autoremove -y --purge && \ | ||
find / | grep -E "__pycache__" | xargs rm -rf && \ | ||
rm -rf ~/.cache | ||
# Update apt's cache of available packages | ||
RUN apt-get update | ||
|
||
# Install curl so we can download and install pip later | ||
# Also install major root CA certificates for curl to reference | ||
RUN apt-get install -y curl ca-certificates | ||
|
||
# Install gcc which is required for installing hiredis | ||
RUN apt-get install -y gcc | ||
|
||
{% if docker_snmp_sv2_debs.strip() -%} | ||
# Copy locally-built Debian package dependencies | ||
{%- for deb in docker_snmp_sv2_debs.split(' ') %} | ||
COPY debs/{{ deb }} /debs/ | ||
{%- endfor %} | ||
|
||
# Install locally-built Debian packages and implicitly install their dependencies | ||
{%- for deb in docker_snmp_sv2_debs.split(' ') %} | ||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; }; dpkg_apt /debs/{{ deb }} | ||
{%- endfor %} | ||
{%- endif %} | ||
|
||
# Install up-to-date version of pip | ||
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.6 | ||
RUN python3.6 -m pip install --no-cache-dir hiredis | ||
|
||
{% if docker_snmp_sv2_whls.strip() -%} | ||
# Copy locally-built Python wheel dependencies | ||
{%- for whl in docker_snmp_sv2_whls.split(' ') %} | ||
COPY python-wheels/{{ whl }} /python-wheels/ | ||
{%- endfor %} | ||
|
||
# Install locally-built Python wheel dependencies | ||
{%- for whl in docker_snmp_sv2_whls.split(' ') %} | ||
RUN pip install /python-wheels/{{ whl }} | ||
{%- endfor %} | ||
{% endif %} | ||
|
||
RUN python3.6 -m sonic_ax_impl install | ||
|
||
# Clean up | ||
RUN apt-get -y purge libpython3.6-dev curl gcc | ||
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 | ||
|
||
COPY ["start.sh", "/usr/bin/"] | ||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] | ||
COPY ["*.j2", "/usr/share/sonic/templates/"] | ||
COPY ["snmpd-config-updater", "/usr/bin/snmpd-config-updater"] | ||
RUN chmod +x /usr/bin/snmpd-config-updater | ||
|
||
## Although exposing ports is not needed for host net mode, keep it for possible bridge mode | ||
# Although exposing ports is not needed for host net mode, keep it for possible bridge mode | ||
EXPOSE 161/udp 162/udp | ||
|
||
ENTRYPOINT ["/usr/bin/supervisord"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider merge with files/apt/apt.conf.d/81norecommends, and share the same file in both host and docker images.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea.