Pulp/pulp-web:latest docker image in dockerhub misses the amd64 architecture support

Problem:
pulp/pulp-web:latest docker image in dockerhub now misses the amd64 architecture. It now supports only arm64. This was not the case in the previous latest releases.

Expected outcome:
pulp/pulp-web:latest docker image in dockerhub supports architecture for both: amd64 and arm64.
This is the case for pulp/pulp-minimal

Pulpcore version:
{
“component”: “core”,
“version”: “3.54.0”,
“package”: “pulpcore”,
“module”: “pulpcore.app”,
“domain_compatible”: true
}

Pulp plugins installed and their versions:
{
“component”: “ansible”,
“version”: “0.21.6”,
“package”: “pulp-ansible”,
“module”: “pulp_ansible.app”,
“domain_compatible”: false
},
{
“component”: “container”,
“version”: “2.20.0”,
“package”: “pulp-container”,
“module”: “pulp_container.app”,
“domain_compatible”: false
},
{
“component”: “deb”,
“version”: “3.2.0”,
“package”: “pulp_deb”,
“module”: “pulp_deb.app”,
“domain_compatible”: false
},
{
“component”: “maven”,
“version”: “0.8.0”,
“package”: “pulp-maven”,
“module”: “pulp_maven.app”,
“domain_compatible”: false
},
{
“component”: “ostree”,
“version”: “2.3.0”,
“package”: “pulp-ostree”,
“module”: “pulp_ostree.app”,
“domain_compatible”: true
},
{
“component”: “python”,
“version”: “3.11.1”,
“package”: “pulp-python”,
“module”: “pulp_python.app”,
“domain_compatible”: false
},
{
“component”: “rpm”,
“version”: “3.26.0”,
“package”: “pulp-rpm”,
“module”: “pulp_rpm.app”,
“domain_compatible”: true
},
{
“component”: “certguard”,
“version”: “3.54.0”,
“package”: “pulpcore”,
“module”: “pulp_certguard.app”,
“domain_compatible”: true
},
{
“component”: “file”,
“version”: “3.54.0”,
“package”: “pulpcore”,
“module”: “pulp_file.app”,
“domain_compatible”: true
}

Operating system - distribution and version:
NAME=“Alma Linux”
VERSION=“8.9”
Pulp with docker compose is used for deployment.

Other relevant data:
docker manifest inspect pulp/pulp-minimal:latest
{
“schemaVersion”: 2,
“mediaType”: “application/vnd.docker.distribution.manifest.list.v2+json”,
“manifests”: [
{
“mediaType”: “application/vnd.docker.distribution.manifest.v2+json”,
“size”: 5256,
“digest”: “sha256:12d8fc3da61d87a42677906f824964436c4643a014f4afaff04812cf203cc2ef”,
“platform”: {
“architecture”: “arm64”,
“os”: “linux”,
“variant”: “v8”
}
},
{
“mediaType”: “application/vnd.docker.distribution.manifest.v2+json”,
“size”: 5256,
“digest”: “sha256:7cc79fccd84e4fb49cfe68424dc09e85f4132ade15415a9039baac9c282cbee2”,
“platform”: {
“architecture”: “amd64”,
“os”: “linux”
}
}
]
}

docker manifest inspect pulp/pulp-web:latest
{
“schemaVersion”: 2,
“mediaType”: “application/vnd.docker.distribution.manifest.list.v2+json”,
“manifests”: [
{
“mediaType”: “application/vnd.docker.distribution.manifest.v2+json”,
“size”: 1729,
“digest”: “sha256:433e00a1b83caa6664c7e6bff77258cd1bf7b7c7def7d33a1b786e153a7b67aa”,
“platform”: {
“architecture”: “arm64”,
“os”: “linux”
}
}
]
}

If I understand your question correctly, you are saying there is no AMD64 architecture images available. That is true. If you use the :latest tag you wont find any AMD64 images. However, if you choose a specific tag you can find AMD64 images. It had me confused for a while too. Tag 3.68.1 is for AMD64. So how you solve the issues depends on what you are expecting to do- you can work around the issue by selecting a different tag. BTW, I get your point, you are expecting to find AMD64 with a :latest tag.

1 Like

Thanks for the response. Yes, would it be possible for pulp/pulp-web:latest image to support both architectures? This is currently the case for pulp/pulp-minimal:latest.

1 Like

Sorry, I am not one of the developers. My point was that by using a work around you many be able to get your setup running. Hopefully, one of the developers can tell us why the :latest tag only has the arm architecture available.

1 Like

Thanks a lot. Sure. Let’s see what one of the developers will say about this issue.

I’ve verified the issue: Pulp-web is only available for arm64 on DockerHub and Quay.io · Issue #702 · pulp/pulp-oci-images · GitHub. The main reason is that we were using an old nginx image that didn’t have an arm variant available, but our CI expected there to be one for both arm & amd, so it ends up publishing just the amd one, funny enough under the wrong arm label. I have a fix opened to update to the latest nginx version (Upgrade pulp-web image to latest nginx image by gerrod3 · Pull Request #703 · pulp/pulp-oci-images · GitHub) but it does require changes to the default compose files if those are what you are using. I haven’t checked to see what changes the operator might need for this fix (hopefully none).

3 Likes

Thanks for the update. We will be able to update the docker compose file once your pull request is merged and the new image (with amd64 support) is published into DockerHub. I will seek you assistance on the changes needed for the compose file.

The fix has been released, now available in stable/latest/3.69 for pulp-web. For the default compose files, there were three changes:

  1. compose/assets/bin/nginx.sh
  2. compose/assets/nginx/nginx.conf.template
  3. compose/compose.yml
    If you were using any of these files without customization then you need to upgrade to the latest changes when you update your pulp-web image. Here’s the commit if you want to inspect the changes: Upgrade pulp-web image to latest nginx image by gerrod3 · Pull Request #703 · pulp/pulp-oci-images · GitHub
3 Likes

Thanks. I also noticed it is published to DockerHub supporting both architectures now. I will apply the changes to the files you mentioned.

1 Like