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

Immich docker containers do not contain correct labels for renovate to show changelogs / release notes #17208

Open
bo0tzz opened this issue Mar 29, 2025 · 1 comment

Comments

@bo0tzz
Copy link
Member

bo0tzz commented Mar 29, 2025

Discussed in #17205

Originally posted by chrishoage March 29, 2025
Currently the images published do not have the correct labels for renovate to show release notes

image

The package link points to https://github.com/immich-app/base-images

If this could get addressed that would be great!

The Renovate docs outline the following to support pulling release notes from a docker version bump:

This datasource identifies an image's source repository according to the pre-defined annotation keys of the OCI Image Format Specification.

This datasource looks for the metadata of the latest stable image found on the Docker registry and uses the value of the label org.opencontainers.image.source and org.label-schema.vcs-url as the sourceUrl. Additionally, it uses the value of the label org.opencontainers.image.revision as the gitRef.

The Label Schema is superseded by OCI annotations, use the org.opencontainers.image.source label if possible.

If you maintain a Docker image and want Renovate to find your changelogs, add a org.opencontainers.image.source field to your Dockerfile. The link must point to your GitHub or GitLab repository. Here's an example from our renovate/renovate Dockerfile:

LABEL org.opencontainers.image.source="https://github.com/renovatebot/renovate"

The current immich docker images have the following labels:

                "org.opencontainers.image.created": "2025-03-25T11:18:49.059Z",
                "org.opencontainers.image.description": "Base images for Immich containers",
                "org.opencontainers.image.licenses": "AGPL-3.0",
                "org.opencontainers.image.revision": "4faae948b472d3a10a338389fea7467a420524b3",
                "org.opencontainers.image.source": "https://github.com/immich-app/base-images",
                "org.opencontainers.image.title": "base-images",
                "org.opencontainers.image.url": "https://github.com/immich-app/base-images",
                "org.opencontainers.image.version": "202503251114"

Note:

It does appear the env of the build does contain the correct information, but they don't make it to the labels applied to the final image.

I took a look through the workflows and it's not immediately clear why the labels are wrong. Here is the job which created the image - but the labels appear correct here https://github.com/immich-app/immich/actions/runs/14069817240/job/39401444825

In any case, the labels do not get applied.

here is the full JSON output from `docker image inspect`
    {
        "Id": "sha256:a4ae613ddbb00ccdf158df88545284c595a1c68fcccc0fa94b1df915752c72ae",
        "RepoTags": [
            "ghcr.io/immich-app/immich-server:v1.130.3"
        ],
        "RepoDigests": [
            "ghcr.io/immich-app/immich-server@sha256:eb5e28de53461e9c328d86fdccfddde579cf9b10ebb3105a2a194115b79ad8a9"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2025-03-27T16:40:53.242070238Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "2283/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/src/app/bin",
                "NODE_VERSION=22.14.0",
                "YARN_VERSION=1.22.22",
                "LD_LIBRARY_PATH=/usr/lib/jellyfin-ffmpeg/lib:/usr/lib/wsl/lib:",
                "NODE_ENV=production",
                "NVIDIA_DRIVER_CAPABILITIES=all",
                "NVIDIA_VISIBLE_DEVICES=all",
                "IMMICH_BUILD=14111963986",
                "IMMICH_BUILD_URL=https://github.com/immich-app/immich/actions/runs/14111963986",
                "IMMICH_BUILD_IMAGE=v1.130.3",
                "IMMICH_BUILD_IMAGE_URL=https://github.com/immich-app/immich/pkgs/container/immich-server",
                "IMMICH_REPOSITORY=immich-app/immich",
                "IMMICH_REPOSITORY_URL=https://github.com/immich-app/immich",
                "IMMICH_SOURCE_REF=v1.130.3",
                "IMMICH_SOURCE_COMMIT=43f8f473e95438cabef3626f149389213a353004",
                "IMMICH_SOURCE_URL=https://github.com/immich-app/immich/commit/43f8f473e95438cabef3626f149389213a353004"
            ],
            "Cmd": [
                "start.sh"
            ],
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "immich-healthcheck"
                ]
            },
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": {
                "/usr/src/app/upload": {}
            },
            "WorkingDir": "/usr/src/app",
            "Entrypoint": [
                "tini",
                "--",
                "/bin/bash"
            ],
            "OnBuild": null,
            "Labels": {
                "org.opencontainers.image.created": "2025-03-25T11:18:49.059Z",
                "org.opencontainers.image.description": "Base images for Immich containers",
                "org.opencontainers.image.licenses": "AGPL-3.0",
                "org.opencontainers.image.revision": "4faae948b472d3a10a338389fea7467a420524b3",
                "org.opencontainers.image.source": "https://github.com/immich-app/base-images",
                "org.opencontainers.image.title": "base-images",
                "org.opencontainers.image.url": "https://github.com/immich-app/base-images",
                "org.opencontainers.image.version": "202503251114"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 2120545003,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/7832c1b0ab945d4b495b25b7974214ffda75f69528d4592eb4d85359d00517f9/diff:/var/lib/docker/overlay2/333ef33527e65fafb854a4b2f22f511484960c2ee24c18facf9914b3d534b84d/diff:/var/lib/docker/overlay2/e6383b2e3f0e8497260385d9bba455ad73df9bad7da1dcb4887a77ac9f3eb203/diff:/var/lib/docker/overlay2/921404ca2e64d68f9bf58b76018cd2c9adb3cae90b4d0eb2041e9515245cb060/diff:/var/lib/docker/overlay2/39cca83a4348c97d2059dc2d5734b4b00ca2ee602803b075d13f7e68f68d9ffc/diff:/var/lib/docker/overlay2/838d989a82d51f56d5b2547cd3039dae3fbe91f79c571c34f2bc8bccd4ccb926/diff:/var/lib/docker/overlay2/624c0e0f4be02aaf286eb5e104ee73e97045394b75bc229e8cfe968d108f038b/diff:/var/lib/docker/overlay2/79827c230f48344a8be7991b007f2506a8f57b660b7208e5020f407de106df2b/diff:/var/lib/docker/overlay2/ffff8e4e6903ec86a9d2f1b5a9326b757913ae444dab273389d50d0aed14fafe/diff:/var/lib/docker/overlay2/43e51d5d04995f253959ba4c07014dc4444a9ecfb170310b4655244b0c29c5c8/diff:/var/lib/docker/overlay2/0758a7df657aef787f3b13a0a89fb8d5d6e769af1db8748ac9087a3ee6a1a2bd/diff:/var/lib/docker/overlay2/fdd9f3cd5dc1f8f43fc4aec6ccd44ebac4bbd453011e5b02b2fd66de470cd61b/diff:/var/lib/docker/overlay2/eb3bb6338e92959f4789808155f117867d3c905786be8041d55b7858f3e77a7a/diff:/var/lib/docker/overlay2/421c239b2a762ab924dbb9e13ae580649820da3c156c53e8dfcafde5ed4e5574/diff:/var/lib/docker/overlay2/69e27628fff968463111ee54bc81a063860e9a2306bad262ea8cf83efd72d478/diff:/var/lib/docker/overlay2/f2376a9968e89b26443c18cc40f8a655f7a27e5c29cab6f41dc7c4f9bda4c122/diff:/var/lib/docker/overlay2/c2325afe4f6502bbbd9adf194ccc8abe3bcb629f655307e2923669818f7453db/diff:/var/lib/docker/overlay2/d81fa40489c89763a7496156c3ce3fc98dce5413be54bc34f08ba1ad8d3b8218/diff:/var/lib/docker/overlay2/22f6d88664afce3838fdd886d3cf954482f92de5ebdfb6080ed3ed35938bca27/diff:/var/lib/docker/overlay2/9d11bc78c16ecd183bac45f99ce457e3dcfe96bd3ccf705a249264455ce3d0bc/diff:/var/lib/docker/overlay2/216d2cd968e70f7715cabab3007d077e632bf254587bfb4ea91ae2828c1e9647/diff:/var/lib/docker/overlay2/e274be6aa2077fe28175ae603def639c4658bd11ec56204a5c0c5311ce30cff4/diff:/var/lib/docker/overlay2/349c822eab853468aab85adbf90b99a506da3b6d313832123522f84738c2cc2b/diff",
                "MergedDir": "/var/lib/docker/overlay2/9fbf0cebefdfa42b496bdfab977e1edf9d0d8ea7b054c29dc2262366b2ec7b08/merged",
                "UpperDir": "/var/lib/docker/overlay2/9fbf0cebefdfa42b496bdfab977e1edf9d0d8ea7b054c29dc2262366b2ec7b08/diff",
                "WorkDir": "/var/lib/docker/overlay2/9fbf0cebefdfa42b496bdfab977e1edf9d0d8ea7b054c29dc2262366b2ec7b08/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:1287fbecdfcce6ee8cf2436e5b9e9d86a4648db2d91080377d499737f1b307f3",
                "sha256:dc691fd1dda42160edec3f9504d42694ef9992728f96c87acd04865b945381f2",
                "sha256:3cfe045b3fb34ecc615a5ea3bb1905528f10db09f96c693e246339fb70644cb4",
                "sha256:b6540cd06602515b9df7128111acc2999f9f72ed7c1e1b5b473ac12cad81d12b",
                "sha256:d8ea3993deaa4e856fb56abbac8bc975918ad22a9a02afb4e9d5cb43dea97510",
                "sha256:3006596406315ef952a9c51805538c800d07c8593111b553f569abd91b6b5cef",
                "sha256:dcea9c86b677c5e59ea6b8fa03e2fc86d24e473ca04a13fc3e1474629fd50ca4",
                "sha256:77e34eaa1beb1570cad4dfc1eb94cb6271d272461dfa04496ee8af2a3cec3e08",
                "sha256:817a8275f6e29fd8c9508acd192c23b0750f3ab2c625cfc5037891bd983c0c36",
                "sha256:3b0f6eef8b645e1da527f8407edb7a0a21791d180711e7ebeaa46badb0e70cc7",
                "sha256:156c7f4de0e2eca174334d6a6ba124f6d28b34cc753dfdb890c19d6208161535",
                "sha256:fa1508ac1ee4fd16e7c429d56c55a9f5366c0c139ba3400ec01ee01cd597922c",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:02539b780d35ac9d86d17dec275096adeda4623582b486f0dfeafaca68884a31",
                "sha256:e8b18adb9250f749849b7cbd2dca31f82c0a727db4c6ea3e6217060c5e2363ab",
                "sha256:478c94495a72ec4eb0877143fbd586db137a2411afc995f994752a624b259da2",
                "sha256:85c18c8d533d0aff2cb0115a91cccd7f5a22fd3d6457563dad5bf1d78658ac22",
                "sha256:82db6f8c63d9a709fda0fafdd0089619b51c9851635b7d57434c67105d268580",
                "sha256:7fbbea66cc05bffcbd022e12b4d2a66cfe4aacbbadb6c4e43a4d7285337641d5",
                "sha256:b771f7bff239f7db5b2562a598139adecd90e3d1542c4ff73230b13e208a924f",
                "sha256:7bf7f83631a46053b9dbd56815ae50a841abc3c40e8012887411506bdf8ba93f",
                "sha256:fbfbf6031366f4a0e8953860f864c4c593330262ca245607d412764669cfa7c4",
                "sha256:0b371f02a666cf64e4554fb9d52aaf70a690647619c30489b4a76242782f7223",
                "sha256:01cc764fc02b06b4eefc20208599706c8b9a0c040886107964ff2e904df79844"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
@bo0tzz
Copy link
Member Author

bo0tzz commented Mar 29, 2025

@zackpollard I think this broke with the arch merging changes, the labels from the metadata workflow don't get applied.

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

1 participant