Skip to content
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

Add Dockerfiles and scripts for Heroku-22 #209

Merged
merged 5 commits into from
Mar 22, 2022
Merged

Add Dockerfiles and scripts for Heroku-22 #209

merged 5 commits into from
Mar 22, 2022

Conversation

dzuelke
Copy link
Contributor

@dzuelke dzuelke commented Mar 5, 2022

Almost no changes over heroku-20 right now; only bumped libwebp and sorted out a few package versions or name changes (e.g. mime-support to media-types).

Removed postgresql-server-dev-14; libpq-dev is enough since nobody will be building Postgres extensions.

libheif1 is now an explicitly installed package, with headers.

ImageMagick policy hasn't changed since 20.04.

To discuss:

  • Ruby removal?
  • python2 removal?
  • add libssl1.1 runtime library?

GUS-W-10340283

Almost no changes over heroku-20 right now; only bumped libwebp and sorted out a few package versions or name changes (e.g. mime-support to media-types)

To discuss: ruby removal, python2 removal, libssl1.1
To do: libpq-dev instead of pg-server-dev, sync ImageMagick policy with upstream

GUS-W-10340283
@dzuelke dzuelke requested a review from a team as a code owner March 5, 2022 13:52
@edmorley
Copy link
Member

edmorley commented Mar 5, 2022

Thank you for opening this! :-)

Ruby removal?

Yeah I'd like to remove system Ruby from the stack image, since:

  • it's been the cause of confusion and support tickets for users who've intended to use Ruby from the Ruby buildpack, but have had invalid buildpack configs or binstubs (and so have actually inadvertently been using system Ruby, which is often not clear from the resultant error messages)
  • aside from Python (which is used by Ubuntu, so unavoidable to include) we don't include any other languages in the base image,
  • dropping it reduces image size plus security surface area in terms of things that may cause us to need to do an urgent stack image release,
  • worst case we can add it back later if needed.

python2 removal?

Yeah I'm happy to remove Python 2 (or more, not add it back given it's not in there as-is). People who need Python 2 for system Python can use heroku-20 in the meantime.

add libssl1.1 runtime library?

It seems there isn't a libssl1.1-dev package available (like there was libssl1.0-dev for 1.0), so it means the most we can do is provide the libssl1.1 runtime library. As such, unless people are attempting to run assets compiled on an older stack on Heroku-22, the runtime library on it's own won't be any use? As such, perhaps we don't include it for now, unless we hear of a use-case that really does need it?

@dzuelke
Copy link
Contributor Author

dzuelke commented Mar 6, 2022

Yup agreed on all points @edmorley. I forgot to mention it'll likely be useless to include libssl1.1 for the reason you mentioned; also note that in bionic, you could not install headers for both versions, since the header file paths are identical and the packages thus conflict.

it is now a dependency of some package at runtime, so add it to the list and include the headers in the build image

should probably add this to heroku-20 as well, would be useful
libpq-dev is enough; nobody will be building actual postgres server extensions :)

this does, however, also remove LLVM and Clang, which is great for image size, but I suspect we will want to consider adding these back
the availability of it on the system often causes confusion and issues for customers expecting a full Ruby from a buildpack but where e.g. a package.json is present in the project

trying without it for now; we can always add it back
Copy link
Member

@edmorley edmorley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great thank you!

heroku-22/setup.sh Outdated Show resolved Hide resolved
@dzuelke dzuelke changed the title WIP: Heroku-22 Heroku-22 Mar 21, 2022
@dzuelke dzuelke merged commit a99d7dd into main Mar 22, 2022
@dzuelke dzuelke deleted the heroku-22 branch March 22, 2022 11:54
@edmorley edmorley changed the title Heroku-22 Add Dockerfiles and scripts for Heroku-22 May 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants