bazel-contrib / bazel-contrib/rules_python

Support native binary-based stage1 bootstrap

Open
#2,500 14 comments 1 reaction 0 assignees View on GitHub
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

# 🚀 feature request

### Relevant Rules

`py_binary`

### Description

With a similar motivation as #691, we would like to package a `py_binary` (including runfiles) into an `oci_image` and run it within a minimum base image like [distroless_base](https://github.com/GoogleContainerTools/distroless/tree/main/base) in order to minimize the attack surface. This does not come with a shell and other tools which are required by #1929 so this unfortunately doesn't help us.

### Describe the solution you'd like

Use a statically linked executable as loader.

### Describe alternatives you've considered

Add more stuff to the base image. This is suboptimal as this does not only increase the size but also the attack surface.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing py_binary and oci_image integration, then read the related discussions in #691 and #1929. No source files or tests are named in the issue. Done means a py_binary, including its runfiles, can run from a minimal distroless_base image using a statically linked executable as its loader.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.