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

pkl: Exec format error in Dockerfile #517

Closed
scariabpc opened this issue Jun 8, 2024 · 2 comments
Closed

pkl: Exec format error in Dockerfile #517

scariabpc opened this issue Jun 8, 2024 · 2 comments

Comments

@scariabpc
Copy link

Hi, I'm trying to use pkl inside of my Dockerfile. Currently the Dockerfile has something like this:

# Use the official Python image from the Docker Hub
FROM python:3.11-slim

# Install pkl.
# https://github.com/apple/pkl/releases/tag/0.25.3
ARG PKL_BINARY=pkl-linux-amd64
RUN curl -L -o /opt/pkl https://github.com/apple/pkl/releases/download/0.25.3/${PKL_BINARY} \
  || { echo 'Failed to download pkl'; exit 1; }

# Ensure pkl is executable.
RUN chmod +x /opt/pkl

# Add pkl to the PATH.
ENV PATH="/opt:${PATH}"

...

When this image runs on AWS ECS with Linux, the pkl commands work, but when I build and run the image locally on my Mac with M2 chip I get this error.

$ docker build --build-arg PKL_BINARY=pkl-macos-amd64 -f .../Dockerfile -t my-app ./
$ docker run -p 3000:3000 my-app
sh: 1: pkl: Exec format error
@HT154
Copy link
Contributor

HT154 commented Jun 8, 2024

The binary you are using is pkl-linux-amd64, which is for linux systems running Intel/amd64/x86_64 architecture processors. The build arg you are providing (pkl-macos-aarch64 is for macOS systems running on ARM processors. To run in a linux container on ARM processors, you need to use the pkl-linux-aarch64 binary.

If you are building a multi-architecture container image then you can use the TARGETARCH arg to choose the right binary to download. See the Docker documentation on how to use this arg: https://docs.docker.com/build/guide/multi-platform/

@bioball
Copy link
Contributor

bioball commented Jun 10, 2024

Closing as this is not a Pkl problem (see @HT154's comments)

@bioball bioball closed this as completed Jun 10, 2024
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

3 participants