heroku/base-images

Heroku-16 stack image build failing due to missing lsb-release package

Closed this issue · 0 comments

During the stack-images CI run, we check that the packages installed in the image matches a list saved in the repository. As well as running on commit, TravisCI has been configured to run regardless on a weekly basis.

The weekly started failing as of 13th Sept, and continues to do so even after retriggers:
https://travis-ci.org/heroku/stack-images/jobs/584488562

The failure is due to the lsb-release and distro-info-data packages no longer being found within the Heroku-16 image.

Checking the last released heroku/heroku:16 Docker image (using apt-cache rdepends --installed <package-name>), it can be seen that the distro-info-data package was previously installed due to being a dependency of lsb-release, and lsb-release was installed due to being a dependency of postgresql-client-common.

Looking into postgresql-client-common further (using apt-cache show postgresql-client-common), and comparing the last released Heroku-16 Docker image with a newly built one, the following changes can be seen:

  • Version: 201.pgdg16.04+1 --> 207.pgdg16.04+1
  • Recommends: lsb-release, libreadline6 --> libreadline6

Checking the changelog for recent releases, the removal of lsb-release from Recommends is mentioned here:
https://www.postgresql.org/message-id/E1i8U7c-0005VV-LJ@atalia.postgresql.org

The reason this didn't affect Cedar-14 is that there was no new release for Trusty (presumably since it's EOL):
https://apt.postgresql.org/pub/repos/apt/dists/

...and Heroku-18 was unaffected since it uses --no-install-recommends, so already had to specify the lsb-release dependency explicitly.

To fix this issue, we should add lsb-release to the Heroku-16 apt-get install invocation explicitly.

It's also great to see that (a) our packages CI check has helped prevent yet another regression, (b) switching to using --no-install-recommends looks to have been a good call (to reduce number of implicit but replied upon dependencies).