这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@edmorley
Copy link
Contributor

Previously the default value for DOKKU_CNB_BUILDER was heroku/buildpacks, which for Docker is equivalent to heroku/buildpacks:latest.

The latest tag is about to be deleted (see heroku/cnb-builder-images#344), so this switches the default value to heroku/buildpacks:20 - which is what the latest tag is currently as alias for.

Longer term, DOKKU_CNB_BUILDER should be switched to the non-deprecated heroku/builder:* images, however, that's potentially a breaking change, so is out of scope of this bug-fix PR.

For the list of available builders/tags, see:
https://github.com/heroku/builder#heroku-builder-images

Fixes #5861.

Previously the default value for `DOKKU_CNB_BUILDER` was `heroku/buildpacks`,
which for Docker is equivalent to `heroku/buildpacks:latest`.

The `latest` tag is about to be deleted (see heroku/cnb-builder-images#344), so this
switches the default value to `heroku/buildpacks:20` - which is what the
`latest` tag is currently as alias for.

Longer term, `DOKKU_CNB_BUILDER` should be switched to the non-deprecated
`heroku/builder:*` images, however, that's potentially a breaking change,
so is out of scope of this bug-fix PR.

For the list of available builders/tags, see:
https://github.com/heroku/builder#heroku-builder-images

Fixes dokku#5861.
@josegonzalez josegonzalez changed the title fix: Stop using the latest tag for the default DOKKU_CNB_BUILDER Stop using the latest tag for the default DOKKU_CNB_BUILDER May 25, 2023
@josegonzalez
Copy link
Member

I'll get this merged, but what is potentially breaking about switching to the heroku/builder image?

@josegonzalez josegonzalez merged commit e50f301 into dokku:master May 25, 2023
@edmorley edmorley deleted the patch-1 branch May 25, 2023 06:26
@edmorley
Copy link
Contributor Author

@josegonzalez Thank you for the merge. The breaking differences between the various images are:

  • The heroku/buildpacks:* images contain a mixture of native CNBs and shimmed classic buildpacks. In contrast for the new images, we've split out the shimmed and native buildpacks into two separate builder namespaces: heroku/builder:* and heroku/builder-classic:*. For now (until we finish more CNBs), heroku/buildpacks:* supports a couple more languages/tools (PHP, Gradle) than the heroku/builder:* images.
  • The heroku/builder:* and heroku/builder-classic:* images only support Heroku-22+, meaning that switching to them requires upgrading from Heroku-20 to Heroku-22 too.
  • The native CNBs for some languages have used this opportunity to drop old features (eg old versions of Rails in the case of the Ruby buildpack iirc), or haven't quite added support for all features yet (eg automatic Django collectstatic support is not yet finished for the Python CNB)

The feature parity and language support differences will reduce over the coming months as we finish/polish the native CNBs.

See also the image descriptions under the table here:
https://github.com/heroku/builder#heroku-builder-images

@edmorley
Copy link
Contributor Author

That is, it would be great if Dokku eventually switched the default to heroku/builder:22, however, if that was done right now, then for a small subset of people that would be a breaking change, and they would need to instead switch to heroku/builder-classic:22 until the feature parity/language support of heroku/builder:22 is improved.

Switching the Dokku default now might be something you want to do anyway (depending on how many people rely on the defaults, your appetite for risk, and how many Dokku users you think might read the release notes clearly etc), but I wanted to at least keep this initial change simple, since it unblocks me deleting the (no longer updated, and IMO footgun-prone) latest tag :-)

@josegonzalez
Copy link
Member

I'll get a patch release out in a day or two, after which you can probably remove the image. If it breaks for folks, we have a workaround folks can use to switch to a supported builder.

I think moving to the heroku/builder:22 might make sense in the next minor release.

@josegonzalez
Copy link
Member

Also, thank you for the explanation, that makes a ton of sense!

github-actions bot pushed a commit that referenced this pull request May 26, 2023
# History

## 0.30.5

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.30.5/bootstrap.sh
sudo DOKKU_TAG=v0.30.5 bash bootstrap.sh
```

### New Features

- #5862: @edmorley Stop using the `latest` tag for the default `DOKKU_CNB_BUILDER`

### Documentation

- #5870: @josegonzalez Repair malformed code-block
- #5863: @joker234 Remove reference to ssh github clone from app deployment docs

### Tests

- #5867: @josegonzalez Update linuxserver image used in tests to one that is compatible with arm64

### Dependencies

- #5868: @josegonzalez Update all golang dependencies to fix go.0 tests
- #5856: @dependabot[bot] chore(deps): bump pymdown-extensions from 9.11 to 10.0.1 in /docs/_build
- #5865: @dependabot[bot] chore(deps): bump requests from 2.27.1 to 2.31.0 in /tests/apps/lambda-python
- #5864: @dependabot[bot] chore(deps): bump mkdocs-material from 9.1.12 to 9.1.14 in /docs/_build
- #5866: @dependabot[bot] chore(deps): bump maven-dependency-plugin from 3.5.0 to 3.6.0 in /tests/apps/java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DOKKU_CNB_BUILDER defaults to the latest tag of heroku/buildpacks which is about to be deleted

2 participants