Skip to content

New Docker image build system causes no more python3 interpreter in 2.16.0 #10854

Description

@aval13

Describe the bug

Starting with 2.16.0, the Docker image build system was upgraded.

In the old version, the monitoring-plugins package was installed via apt-get install --no-install-suggests, but no flag for recommends, which resulted in more packages being installed since they were recommended.
One the these packages was python3.
In the new version, the monitoring-plugins package has both no install flags for suggests and recommends.
This resulted in a smaller image as less packages are being installed (188 instead of 265), but the python interpreter is no longer available.

In our particular implementation, we were relying on python being present in the image.
I was unable to find the release notes anything about less packages in the image or python no longer being available.

To Reproduce

Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. Include configuration, logs, etc. to reproduce, if relevant.

  1. Start a container with version 2.15.3
  2. Run python3 --version
    Result:
    $ python3 --version
    Python 3.11.2
  3. Start a container with version 2.16.0
  4. Run python3 --version
    $ python3 --version
    bash: python3: command not found

Expected behavior

We were expecting the python interpreter to be present, like in previous versions

Screenshots

Your Environment

Include as many relevant details about the environment you experienced the problem in

  • Version used (icinga2 --version): 2.16.0
  • Operating System and version: Kubernetes
  • Enabled features (icinga2 feature list): N/A
  • Icinga Web 2 version and modules (System - About): N/A
  • Config validation (icinga2 daemon -C): N/A
  • If you run multiple Icinga 2 instances, the zones.conf file (or icinga2 object list --type Endpoint and icinga2 object list --type Zone) from all affected nodes.

Additional context

Installing the monitoring-plugins without --no-install-recommends in 2.15.3 and lower (i think) caused the following chain of dependencies and recommeded packages being installed:
monitoring-plugins -> DEP: monitoring-plugins-standard -> REC: smbclient -> DEP: samba-common -> REC: samba-common-bin -> REC: python3-samba -> DEP: python3 -> DEP: python3-minimal (which provides /usr/bin/python3 binary)
In 2.16.0 installing with --no-install-recommends caused not installing the REC: smbclient, thus not installing the chain of packages which resulted in python3 being installed.

The short term workaround on our side was to create a custom image based on 2.16.0 and install the python interpreter packages in it.
Since this is a change in what the official Icinga2 image offered upto 2.16.0, it would be great if we could have the python interpreter back.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions