pulp-oci-images icon indicating copy to clipboard operation
pulp-oci-images copied to clipboard

On my arm64 machine, I cannot start a multi-process container

Open Wnthr opened this issue 2 years ago • 1 comments

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.

Wnthr avatar Jan 19 '24 21:01 Wnthr

Yeah, the pulp_ci_centos image needs logic to install s6 according to the correct architecture.

mikedep333 avatar Jan 23 '24 16:01 mikedep333

@Wnthr Is this still an issue? Have you tried this on the latest images?

gerrod3 avatar Jan 16 '25 19:01 gerrod3

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.

fogelman avatar Mar 10 '25 01:03 fogelman

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.

fogelman avatar Mar 10 '25 03:03 fogelman