craftcms / image

Container images that are used as the base for Craft CMS container applications
https://craftcms.com
8 stars 0 forks source link

php_version argument is ignored #10

Closed samueltrevena closed 3 months ago

samueltrevena commented 3 months ago

Description

Using the build argument php_version does not install the specified version for ghcr.io/craftcms/image:8.2. Instead php version 8.3 is installed.

Steps to reproduce

  1. Create a simple Dockerfile such as the one in the example: https://github.com/craftcms/image/blob/8.2/examples/craftcms/Dockerfile
ARG php_version
FROM ghcr.io/craftcms/image:${php_version}
  1. Run docker build command with php_version as argument:
    docker build --build-arg php_version=8.2 --build-arg ubuntu_version=22.04 --progress plain --tag craft_new .

  2. Open a shell on the container and check php version. Note that PHP 8.3.4 is installed even though version 8.2 was specified.

❯ docker exec -it 84ba90e27b39 /bin/bash
appuser@84ba90e27b39:~$ php --version
PHP 8.3.4 (cli) (built: Mar 16 2024 08:40:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.4, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.4, Copyright (c), by Zend Technologies
appuser@84ba90e27b39:~$ apt list installed
Listing... Done
appuser@84ba90e27b39:~$ apt list --installed | grep php

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

php-common/jammy,now 2:94+ubuntu22.04.1+deb.sury.org+2 all [installed,automatic]
php8.3-bcmath/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-cli/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-common/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-curl/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-fpm/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-gd/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-igbinary/jammy,now 3.2.15-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-intl/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-mbstring/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-mysql/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-opcache/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-pgsql/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-readline/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed,automatic]
php8.3-redis/jammy,now 6.0.2-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-soap/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-xml/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]
php8.3-zip/jammy,now 8.3.4-1+ubuntu22.04.1+deb.sury.org+1 amd64 [installed]

Additional info

Output from docker build command in step 3 above:

❯ docker build --build-arg php_version=8.2 --build-arg ubuntu_version=22.04 --progress plain --tag craft_new .
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.95kB done
#1 DONE 0.1s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.1s

#3 [internal] load metadata for ghcr.io/craftcms/image:8.2
#3 DONE 1.0s

#4 [1/1] FROM ghcr.io/craftcms/image:8.2@sha256:58d021056a9c2172dc899aeb92c56eee8869dc84475a592fb216488522cff4f4
#4 resolve ghcr.io/craftcms/image:8.2@sha256:58d021056a9c2172dc899aeb92c56eee8869dc84475a592fb216488522cff4f4 0.0s done
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 0B / 29.54MB 0.1s
#4 sha256:3499eb32c6b8c3397bbf1491523f4cc444aedf547f977bc853fc26ecfcdcb662 0B / 96B 0.1s
#4 sha256:58d021056a9c2172dc899aeb92c56eee8869dc84475a592fb216488522cff4f4 1.61kB / 1.61kB done
#4 sha256:0b22e0f5e3c930a3c60857b9578624b22998d7e293cdd9a07804b2ac15d267af 0B / 1.17kB 0.1s
#4 sha256:3d1461461b8af7d3653a794b87b4546644f121ead201ff67aef502f2fd76e075 14.89kB / 14.89kB done
#4 sha256:9bbe2520c8e16b0c7e9e09df5d14afbd18bc7fb6326cd0fa28cc321ee661ea3c 2.93kB / 2.93kB done
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 2.10MB / 29.54MB 0.3s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 10.49MB / 29.54MB 0.5s
#4 sha256:3499eb32c6b8c3397bbf1491523f4cc444aedf547f977bc853fc26ecfcdcb662 96B / 96B 0.4s done
#4 sha256:0b22e0f5e3c930a3c60857b9578624b22998d7e293cdd9a07804b2ac15d267af 1.17kB / 1.17kB 0.4s done
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 0B / 113.23MB 0.5s
#4 sha256:ab85c90d6924e87c21f11bcabfc95f2ecf06e66695ceaf558b772470a0332007 0B / 230B 0.5s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 14.68MB / 29.54MB 0.6s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 18.87MB / 29.54MB 0.7s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 26.21MB / 29.54MB 0.9s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 6.29MB / 113.23MB 0.9s
#4 sha256:ab85c90d6924e87c21f11bcabfc95f2ecf06e66695ceaf558b772470a0332007 230B / 230B 0.7s done
#4 sha256:2958268d5f71d1e3daf327eb0521c3a39f4d6de2f274413e9f2e2949f0a3c8e4 0B / 282B 0.9s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 29.54MB / 29.54MB 1.0s
#4 sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 29.54MB / 29.54MB 1.0s done
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 12.58MB / 113.23MB 1.1s
#4 extracting sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb
#4 sha256:c197f4538005ef2a76d6e85883835a8ff022603a0a6978aa05f9fd23b266b716 0B / 3.14kB 1.1s
#4 sha256:2958268d5f71d1e3daf327eb0521c3a39f4d6de2f274413e9f2e2949f0a3c8e4 282B / 282B 1.2s done
#4 sha256:c197f4538005ef2a76d6e85883835a8ff022603a0a6978aa05f9fd23b266b716 3.14kB / 3.14kB 1.3s done
#4 sha256:075e7f8791e0903f6cd576a71166278cea902e29b9d5961dde5e1817eedd068a 0B / 527B 1.3s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 20.97MB / 113.23MB 1.4s
#4 sha256:c6bbcd4de2ffb269773666e5d04557ebeb81d0b872c25b53fc6e1f404a6e448f 0B / 1.29kB 1.4s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 27.26MB / 113.23MB 1.6s
#4 sha256:075e7f8791e0903f6cd576a71166278cea902e29b9d5961dde5e1817eedd068a 527B / 527B 1.5s done
#4 sha256:c6bbcd4de2ffb269773666e5d04557ebeb81d0b872c25b53fc6e1f404a6e448f 1.29kB / 1.29kB 1.5s done
#4 sha256:6b2ab84d6f6625c5a77fc099892a1293daa963717d76af4f4fc262085aad7fdd 0B / 154B 1.6s
#4 sha256:f07d96fef137bc988e9858b02061aa5e4f7c1ae1eb89e9e8ad432573774cc1f5 0B / 134B 1.6s
#4 sha256:6b2ab84d6f6625c5a77fc099892a1293daa963717d76af4f4fc262085aad7fdd 154B / 154B 1.8s
#4 sha256:f07d96fef137bc988e9858b02061aa5e4f7c1ae1eb89e9e8ad432573774cc1f5 134B / 134B 1.8s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 36.70MB / 113.23MB 2.0s
#4 sha256:6b2ab84d6f6625c5a77fc099892a1293daa963717d76af4f4fc262085aad7fdd 154B / 154B 1.8s done
#4 sha256:f07d96fef137bc988e9858b02061aa5e4f7c1ae1eb89e9e8ad432573774cc1f5 134B / 134B 1.8s done
#4 sha256:d9fc06d7844539532f171c38d9fcf3da252a33983368b579eb61c50487646756 0B / 137B 2.0s
#4 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B 2.0s done
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 45.09MB / 113.23MB 2.3s
#4 extracting sha256:bccd10f490ab0f3fba61b193d1b80af91b17ca9bdca9768a16ed05ce16552fcb 1.2s done
#4 sha256:d9fc06d7844539532f171c38d9fcf3da252a33983368b579eb61c50487646756 137B / 137B 2.3s done
#4 extracting sha256:0b22e0f5e3c930a3c60857b9578624b22998d7e293cdd9a07804b2ac15d267af done
#4 extracting sha256:3499eb32c6b8c3397bbf1491523f4cc444aedf547f977bc853fc26ecfcdcb662 done
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 52.43MB / 113.23MB 2.6s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 60.82MB / 113.23MB 2.9s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 67.11MB / 113.23MB 3.1s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 73.40MB / 113.23MB 3.3s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 83.89MB / 113.23MB 3.7s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 92.27MB / 113.23MB 4.0s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 100.66MB / 113.23MB 4.3s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 111.15MB / 113.23MB 4.6s
#4 sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 113.23MB / 113.23MB 4.8s done
#4 extracting sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d
#4 extracting sha256:8da9f0d01b5dea10e1ede9d1d1006d33bb81ec4e4b6514d94ec634d7fece624d 3.5s done
#4 extracting sha256:ab85c90d6924e87c21f11bcabfc95f2ecf06e66695ceaf558b772470a0332007 done
#4 extracting sha256:2958268d5f71d1e3daf327eb0521c3a39f4d6de2f274413e9f2e2949f0a3c8e4
#4 extracting sha256:2958268d5f71d1e3daf327eb0521c3a39f4d6de2f274413e9f2e2949f0a3c8e4 done
#4 extracting sha256:c197f4538005ef2a76d6e85883835a8ff022603a0a6978aa05f9fd23b266b716 done
#4 extracting sha256:075e7f8791e0903f6cd576a71166278cea902e29b9d5961dde5e1817eedd068a done
#4 extracting sha256:c6bbcd4de2ffb269773666e5d04557ebeb81d0b872c25b53fc6e1f404a6e448f
#4 extracting sha256:c6bbcd4de2ffb269773666e5d04557ebeb81d0b872c25b53fc6e1f404a6e448f done
#4 extracting sha256:6b2ab84d6f6625c5a77fc099892a1293daa963717d76af4f4fc262085aad7fdd done
#4 extracting sha256:f07d96fef137bc988e9858b02061aa5e4f7c1ae1eb89e9e8ad432573774cc1f5 done
#4 extracting sha256:d9fc06d7844539532f171c38d9fcf3da252a33983368b579eb61c50487646756
#4 extracting sha256:d9fc06d7844539532f171c38d9fcf3da252a33983368b579eb61c50487646756 done
#4 extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done
#4 DONE 9.7s

#5 exporting to image
#5 exporting layers done
#5 writing image sha256:9524df185abc482eb226a5707b94601abaee2e8eeabc4173a387a9a71d450078 done
#5 naming to docker.io/library/craft_new done
#5 DONE 0.0s
jasonmccallister commented 3 months ago

@samueltrevena thank you for reporting, I'm going to look into this and see what I can find.

jasonmccallister commented 3 months ago

Hi @samueltrevena, just pushed a fix for the version. The published image was always PHP 8.3 which is now resolved.

You can verify by running the following command locally:

docker run --rm -it --pull always --entrypoint php ghcr.io/craftcms/image:8.2 -v
8.2: Pulling from craftcms/image
4f4fb700ef54: Already exists
9b10a938e284: Download complete
826dab1ce283: Download complete
d678ec88cdee: Download complete
9df0c6997a90: Download complete
8febe91b9933: Download complete
600879c2b3bf: Download complete
9b4a73fe526b: Download complete
8ee3003f1b15: Download complete
27daa3413d4a: Download complete
ee395a692bbb: Download complete
b07227d4561a: Download complete
c34fe9770877: Download complete
Digest: sha256:f6dc2dd27fa14bf4389b031776448f1321292a14c96bcf213fef2ba0986b1b89
Status: Downloaded newer image for ghcr.io/craftcms/image:8.2
PHP 8.2.20 (cli) (built: Jun  6 2024 16:55:57) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies
samueltrevena commented 3 months ago

Perfect, thank you @jasonmccallister.