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

Update base images to Debian Stretch and Alpine 3.6 #504

Closed
yosifkit opened this issue Oct 3, 2017 · 9 comments
Closed

Update base images to Debian Stretch and Alpine 3.6 #504

yosifkit opened this issue Oct 3, 2017 · 9 comments

Comments

@yosifkit
Copy link
Member

yosifkit commented Oct 3, 2017

Bringing together other issues/PRs requesting base image updates: #428, #456, #457, #468, #482, #501.
Should fix theses once we make a PR: #495, #198

We do not want to maintain our PHP images over multiple distro releases in the long term. To update the base image without immediately breaking users like docker-library/golang#131, we'll have to release images based on all four distributions (Alpine 3.4, Alpine 3.6, Debian Jessie, and Debian Stretch) over a few months and then end of life the versions based on the older Linux distributions (Alpine 3.4 and Debian Jessie).


Why not keep all distribution versions longer (Alpine 3.4, 3.6, Jessie, and Stretch)?

  • it takes over ~1.5 hours for travisCI to test current PRs, this would close to double that (28 uniq tags to ~49)
  • it will increase update delay since the build server would also have to build the extra versions

We are thinking something like this:

  • release all versions and variants of the PHP images on current disto base and newer distro base (we'll use 1st November 2017 in this exploration)
    • so for example, Alpine based images would have tags for php:7.1-alpine3.4 and php:7.1-alpine3.6
    • and the Debian based images would be php:7.1-jessie and php:7.1-stretch
    • current less-specific tags would stay pointing to the older distro (php:7.1-alpine would still be alpine 3.4)
  • add note about this process for future base image updates
  • place large note on Docker Hub description that images based on older distributions (alpine 3.4 and debian:jessie) will be EOL in 3 months (with an exact date like 1st February 2018)
    • use deprecation notice
    • explain that generic tags like php:7.1-alpine will continue to contain Alpine 3.4 until that date and instead encourage users to switch to php:7.1-alpine3.4 to stick to a specific Linux Distro
    • they will switch over to Alpine 3.6 on that date and the same for jessie/stretch
    • remind users that 7.2 is Alpine 3.6 and stretch only
  • on specified EOL date, remove Alpine 3.4 and Debian Jessie based images from the Supported List
    • users can still docker pull, but the images would no longer be rebuilt with base image changes or version bumps

I think @tianon and I could tackle something like this in the next week or two. Any suggestions or comments?

@amq
Copy link

amq commented Oct 25, 2017

Did some unexpected problems arise?

@amq
Copy link

amq commented Dec 1, 2017

@csandanov
Copy link

Do you plan to release alpine 3.7 version for other 7.x?

@J0WI
Copy link
Contributor

J0WI commented Jan 19, 2018

Where can I find the end of life dates of Alpine Linux? I didn't found any information on their website.

@tianon
Copy link
Member

tianon commented Jan 19, 2018

https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases

@yanbreu
Copy link

yanbreu commented Feb 2, 2018

Any informations about the release date of the update for alpine 3.6 or 3.7 for PHP 7.0 and 7.1 is coming?

@teohhanhui
Copy link

It's unfortunate that -alpine doesn't point to the latest stable Alpine release. It means you're forcing users who want the latest stable to specify the Alpine version, and then it'll come back to bite them once it's EOL (or even before, when they're lagging behind being stuck with the old Alpine version for no good reason). For the common user who don't care about the Alpine version, this is bad news.

@teohhanhui
Copy link

A better alternative would be for -alpine to point to the latest stable Alpine release, and maintain each Alpine release for 3 months as you wish. So for those who require a specific Alpine version, they can stay on it until it's EOL. This would be more consistent with how the PHP releases are handled, e.g. if you choose to stay on php:7.1 instead of just php (php:7 makes less sense due to how PHP introduces breaking changes between minor versions).

@tianon
Copy link
Member

tianon commented Mar 8, 2018

@teohhanhui yes, with the hindsight of having done it less than ideally initially (due to not knowing what would matter longer-term), it's clear to see that -alpine should've pointed to the latest Alpine release -- that's exactly the backwards compatibility problem this issue is discussing 😉

Essentially, we need to establish that users who care about their Dockerfiles working the same long-term need to pin to a specific Alpine release, and we need to ensure that those tags are readily available. Once we've done both of those, we can easily update the plain -alpine tag to point to whatever alpine:latest does.

yosifkit added a commit to infosiftr/php that referenced this issue Jun 14, 2019
docker-library-bot added a commit to docker-library-bot/official-images that referenced this issue Jun 14, 2019
Changes:

- docker-library/php@9687d42: Merge pull request docker-library/php#842 from infosiftr/drop-jessie
- docker-library/php@3a3efd8: Drop alpine 3.8 and jessie builds; these were only kept around for users to transition to stretch or 3.9 (see docker-library/php#504)
- docker-library/php@191ca54: Merge pull request docker-library/php#840 from infosiftr/7.4-rc
- docker-library/php@a9f19e9: Apply minor changes to non 7.4 versions to make deleting lines easier for 7.4
- docker-library/php@d92a953: Fix build issues on 7.4.0-alpha1
- docker-library/php@3822c17: Update generated README
- docker-library/php@3e9d32b: Add 7.4.0alpha1
jdecool added a commit to phpdaily/php that referenced this issue Jul 19, 2019
* docker/master: (21 commits)
  Update to 7.4.0alpha3
  Update "generate-stackbrew-library.sh" too
  Add Debian Buster variant
  Update to 7.2.20
  Update to 7.3.7
  Replace "stretch" with "buster" for PHP 7.4-rc given the imminent Debian release
  Update to 7.4.0alpha2
  Add "--with-pear" in 7.4
  Also remove "update.sh" bits for ARGON2 hack removal
  Remove the Alpine argon2 library fix
  Add "set -u" and more consistency
  Use already available curl and consistent code style
  Update default to Alpine 3.10
  Add Alpine 3.10
  Drop alpine 3.8 and jessie builds; these were only kept around for users to transition to stretch or 3.9 (see docker-library/php#504)
  Apply minor changes to non 7.4 versions to make deleting lines easier for 7.4
  Fix build issues on 7.4.0-alpha1
  Update generated README
  Add 7.4.0alpha1
  Send PHP errors/warnings to stderr in our scripts
  ...
ReactDevs007 added a commit to ReactDevs007/dockerlib that referenced this issue Feb 3, 2021
VenusPR added a commit to VenusPR/PHP_Project that referenced this issue Mar 12, 2023
Watcher919 added a commit to Watcher919/PHP-branch that referenced this issue Sep 2, 2024
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

No branches or pull requests

7 participants