docker-library / php

Docker Official Image packaging for PHP
https://php.net
MIT License
3.79k stars 2k forks source link

php:5.3.29-apache crashes at startup #1398

Closed afilina closed 1 year ago

afilina commented 1 year ago

I created an empty Dockerfile with FROM php:5.3.29-apache. It builds fine, but when attaching, it exits with this error:

app_1  | AH00526: Syntax error on line 3 of /etc/apache2/apache2.conf:
app_1  | Invalid Mutex directory in argument file:/var/lock/apache2

I did not edit that apache2.conf file in any way. This error comes out of the box.

tianon commented 1 year ago

All our PHP 5.3 images have been deprecated and EOL for almost 9 years. :grimacing:

afilina commented 1 year ago

Then it would make sense to delete them from dockerhub instead of keeping non-functional ones, so that others don't waste their time trying to figure out why they're not working. It's quite a shame though. PHP upgrades are very hard to accomplish without the ability to run the original code.

yosifkit commented 1 year ago

We don't delete any old images. The images still run fine.

 $ docker run -it --rm php:5.3.29-apache
Unable to find image 'php:5.3.29-apache' locally
5.3.29-apache: Pulling from library/php
Image docker.io/library/php:5.3.29-apache uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete
e31c7da51bce: Pull complete
614879c30ef3: Pull complete
cad84e43249c: Pull complete
c025cfddd505: Pull complete
a2df03e40cb6: Pull complete
04a6bc268106: Pull complete
0a9a73b39d36: Pull complete
ecf13c2f2c47: Pull complete
ae5911326a0c: Pull complete
f4de2fca619b: Pull complete
d2c49878bad0: Pull complete
Digest: sha256:f2c7c150fd7941a90f9b95777f1af5932ec51babe66f85c0860fea34c042d119
Status: Downloaded newer image for php:5.3.29-apache
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Thu Apr 20 17:58:27.799624 2023] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.3.29 configured -- resuming normal operations
[Thu Apr 20 17:58:27.799653 2023] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND

Or from a build.

 $ docker build - <<EOF
FROM php:5.3.29-apache
EOF
[+] Building 0.3s (5/5) FINISHED
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 60B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/php:5.3.29-apache       0.0s
 => [1/1] FROM docker.io/library/php:5.3.29-apache                         0.2s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:332e76e47971bf64129357ac6be92b2f8318fac4b2107  0.0s
$ docker run -it --rm sha256:332e76e47971bf64129357ac6be92b2f8318fac4b2107
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Thu Apr 20 18:06:17.730086 2023] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.3.29 configured -- resuming normal operations
[Thu Apr 20 18:06:17.730116 2023] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
afilina commented 1 year ago

Closing this while dismissing my crash feels quite rude. It feels like being called a liar.

tianon commented 1 year ago

We're definitely very sorry for making you feel that way - that was not the intent. :heart:

The image you're trying to use is not actively supported, and unfortunately, we do not have the bandwidth to provide in-depth integration/deployment/environment debugging or support here (especially for things that we no longer actively maintain/support and that the PHP project also no longer actively maintains/supports); these sorts of questions/requests would be more appropriately posted to a dedicated support forum, such as the Docker Community Slack, Server Fault, Unix & Linux, or Stack Overflow.

afilina commented 1 year ago

Could you at least make it much clearer that the image is unsupported on Dockerhub, so that the next person doesn't spend as much time as I did investigating the crash? Knowing that something is abandoned and may not work is of tremendous value for people who work with legacy code all day. Thanks.

yosifkit commented 1 year ago

Unfortunately, there is currently no way to mark images as deprecated 😢. Hopefully, with https://github.com/opencontainers/distribution-spec/pull/393 in the next OCI distribution spec we can eventually have something like deprecation warnings on docker pull 😍.

The php Docker Hub page links to the current list of supported tags. The list is usually on the Docker Hub page, but the php tags list plus other description got too long. 🙇 ❤️

afilina commented 1 year ago

What about appending an -eol suffix to the tag name? Not sure everyone will get it, but at least it's a signal in context that can help.