crossplane / crossplane/function-runtime-oci

Cannot execute OCI images that contain /bin/busybox binary

Open
#6 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
6
Forks
2
PR merge metrics
No merged PRs in 30d

Description

# Bug Report:

When trying to run a function using an OCI Image that contains /bin/busybox, it fails.

## Steps to reproduce:

1. Create a function image that contains `/bin/busybox`, e.g. by using `python:3.11-alpine` as a base image
2. Execute the function via xfn

```shell
cat functionio.yaml | docker run -v $(pwd)/auth.json:/root/.docker/config.json:ro -i --security-opt=seccomp=unconfined crossplane/xfn:v1.13.2 run -c /tmp registry.example/your/image:tag -
```

This will yield an error:

```
xfn: error: run.Command.Run(): cannot run function: exit status 1: xfn: error: spark.Command.Run(): cannot create OCI runtime bundle: cannot extract layer tarball: cannot handle tar header for "bin/tar": cannot extract tar header: cannot create symlink: symlink /bin/busybox /tmp/c/319e9a4a-f0a9-46e0-86a1-b887567124b8/rootfs/bin/busybox: file exists
```

## Expected

It executes the function

## Additional Infos

```Dockerfile
FROM python:3.11-alpine AS build
RUN python3 -m venv /venv && \
/venv/bin/pip install --upgrade pip setuptools wheel

FROM build AS build-venv
COPY requirements.txt /requirements.txt
RUN /venv/bin/pip install --disable-pip-version-check -r /requirements.txt

FROM python:3.11-alpine
COPY --from=build-venv /venv /venv
COPY . /app
WORKDIR /app
ENTRYPOINT ["/venv/bin/python3", "function.py"]
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the failure with the provided Dockerfile and the xfn run command, then follow the reported run.Command.Run() and spark.Command.Run() error chain. Investigate OCI layer extraction around the existing /bin/busybox symlink; done means the function image executes successfully without the file-exists error.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.