Skip to content

[FR]: py_image_layer app binary file and folder permssions #540

Open
@ajduo

Description

@ajduo

What is the current behavior?

Hello! I'm encountering an issue with py_image_layer where the I'm unable to set the owner of the application binary that gets passed as tars layer to oci_image. In the image, I can see the UID / GID / user for 65534 / nobody but when I start up the container and check the permissions of the app on the image, the file / folder for the app binary shows the owner as root:root.

Here's my setup:

MODULE.bazel

bazel_dep(name = "aspect_bazel_lib", version = "2.10.0")
bazel_dep(name = "aspect_rules_py", version = "1.2.1")
bazel_dep(name = "rules_oci", version = "2.2.0")

python.toolchain(
    configure_coverage_tool = True,
    ignore_root_user_error = False,
    is_default = "3.11",
    python_version = "3.11",
)

BUILD

load("@aspect_rules_py//py:defs.bzl", "py_image_layer", "py_binary")
load("@rules_oci//oci:defs.bzl", "oci_image")

py_binary(
    name = "app_binary",
    srcs = ["main.py"],
    main = "main.py",
)

py_image_layer(
    name = "layer",
    binary = ":app_binary",
)

oci_image(
    name = "app_binary",
    entrypoint = ["/myapp/server/app_binary"],
    base = "@debian_slim_base",
    tars = [":layer"],
    user = "65534:65534",
)

Describe the feature

Can we had some attributes to make the owner of the app in the layer configurable? It would be nice to be able to set uid:gid as an parameter to py_image_layer like so

py_binary(
    name = "app_binary",
    srcs = ["main.py"],
    main = "main.py",
)

py_image_layer(
    name = "layer",
    binary = ":app_binary",
    user = "65534:65534",
)

oci_image(
    name = "app_binary",
    entrypoint = ["/myapp/server/app_binary"],
    base = "@debian_slim_base",
    tars = [":layer"],
    user = "65534:65534",
)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions