crossplane / crossplane/function-runtime-oci

Cannot execute OCI images that contain /bin/busybox binary

Đang mở
#6 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
6
Fork
2
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# 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"]
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Tái hiện lỗi bằng Dockerfile được cung cấp và lệnh xfn run, sau đó lần theo chuỗi lỗi được báo cáo của run.Command.Run() và spark.Command.Run(). Điều tra việc trích xuất các lớp OCI xung quanh liên kết tượng trưng /bin/busybox hiện có; hoàn tất khi image hàm thực thi thành công mà không gặp lỗi tệp đã tồn tại.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
docker, go
Lĩnh vực
infrastructure
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.