On my arm64 machine, I cannot start a multi-process container
Version Docker image versions I have tried: pulp/pulp:latest, pulp/pulp:stable, pulp/pulp:3.42
Describe the bug When doing a docker run, it exits immediately, and the logs show the following:
/init: line 37: /command/s6-overlay-suexec: cannot execute binary file: Exec format error
/init: line 37: /command/s6-overlay-suexec: Success
To Reproduce
docker pull pulp/pulp
$ docker run --detach
--publish 8080:80
--name pulp
--volume "$(pwd)/settings":/etc/pulp:Z
--volume "$(pwd)/pulp_storage":/var/lib/pulp:Z
--volume "$(pwd)/pgsql":/var/lib/pgsql:Z
--volume "$(pwd)/containers":/var/lib/containers:Z
--device /dev/fuse
pulp/pulp
Expected behavior Docker image up and running
Additional context I pull the image from docker hub. Other containers are running on the machine, so docker seems to be working as intended.
Yeah, the pulp_ci_centos image needs logic to install s6 according to the correct architecture.
@Wnthr Is this still an issue? Have you tried this on the latest images?
I encountered the same issue while running on a VM.Standard.A1.Flex with an Arm64 architecture and Oracle Linux 8.10.
I performed this test on March 9th, 2025, and attempted to use the latest image, but it fails to start with the following error:
/init: line 45: /command/s6-overlay-suexec: cannot execute binary file: Exec format error
/init: line 45: /command/s6-overlay-suexec: Success
Here is the configuration I am using:
pulp:
image: pulp/pulp:latest
container_name: pulp
restart: unless-stopped
volumes:
- ./pulp/settings:/etc/pulp:Z
- ./pulp/pulp_storage:/var/lib/pulp:Z
- ./pulp/pgsql:/var/lib/pgsql:Z
- ./pulp/containers:/var/lib/containers:Z
devices:
- "/dev/fuse"
Please let me know if any additional information is required.
For anyone still experiencing issues with the arm64 architecture, I resolved the problem by adding the compatible s6-overlay packages. I updated the packages in images/pulp_ci_centos/Containerfile and then rebuilt the images.
Package Replacement
I replaced the existing s6-overlay packages with the following:
RUN curl -Ls https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-x86_64.tar.xz | tar xvJ -C /
RUN curl -Ls https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-aarch64.tar.xz | tar xvJ -C /
RUN curl -Ls https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-noarch.tar.xz | tar xvJ -C /
RUN curl -Ls https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-symlinks-noarch.tar.xz | tar xvJ -C /
RUN curl -Ls https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.2/s6-overlay-symlinks-arch.tar.xz | tar xvJ -C /
Rebuilding the Images
After making these changes, I rebuilt the images using the following commands:
docker build --file images/pulp_ci_centos/Containerfile --tag pulp/pulp-ci-centos9:latest .
docker build --file images/pulp/stable/Containerfile --tag pulp/pulp:latest .
This fix worked for me, and I hope it helps anyone facing similar issues!
@gerrod3, I've created a pull request with this fix #728.