Php: alpine image rather outdated - makes it harder than it should be to install extensions

Created on 23 Jun 2017  路  4Comments  路  Source: docker-library/php

Is there a way you might update the base image for the alpine builds? Especially for php 7.x as it is a massive pain to install various extensions or packages like GraphicsMagick..

Right now even the OpenSSL extension for PHP is broken on the 7.1 alpine image and basically impossible to install afterwards..

Most helpful comment

@sTywin, I agree that making the default distribution more obvious is a good thing (like php:7.1-apache-jessie or php:7.1-alpine3.4). I've started over in golang (https://github.com/docker-library/golang/pull/170) since it was much simpler. Once that one is done, @tianon and I can spread it to other images we control (like php). Then we can look to add more variations for stretch and alpine3.6 in php (and our other images). :smile:

All 4 comments

Duplicate of #408. See also #448 and related issue https://github.com/docker-library/ruby/pull/125#issuecomment-310692412.

In summary we are going to move to alpine 3.6 for php 7.2; it might make sense to have alpine 3.6 (and Debian Stretch) variants for 7.1 or 7.0 (though there already is way too many variants of the php image).

In that case, I think the variant architecture needs a bit of re-think. IMO it is not reasonable to peg a specific rootfs container revision for extended periods of time. In other threads, you have mentioned wanting to stay as close to upstream as possible [1] -- I agree with this, except that I would consider the base Alpine image to be included in the definition of upstream. The output is, after all, a combination of the two.

I admit that this complicates versioning. However, if the build process is entirely automated anyway, it shouldn't be too hard to have something like php:7-alpine point to alpine:latest, and php:7-alpine-3.4 point to alpine:3.4, and so on. If the scheme is well-defined, it's easy for people to pull whatever specific image they want.

Edit:

  1. Upon re-reading my reply, I realize you probably meant from a code divergence standpoint as opposed to a time standpoint. My comment remains, though -- there is value in keeping base images up to date (security fixes, tools people expect to be available, etc).

@sTywin, I agree that making the default distribution more obvious is a good thing (like php:7.1-apache-jessie or php:7.1-alpine3.4). I've started over in golang (https://github.com/docker-library/golang/pull/170) since it was much simpler. Once that one is done, @tianon and I can spread it to other images we control (like php). Then we can look to add more variations for stretch and alpine3.6 in php (and our other images). :smile:

Closing in favor of discussion to create base distro update process https://github.com/docker-library/php/issues/504.

Was this page helpful?
0 / 5 - 0 ratings