# How to Execute a Script in a Distroless Fluent-bit Container?

A Fluent-bit container typically uses a [distroless image](https://github.com/GoogleContainerTools/distroless), which only contains the application and its runtime dependencies. This type of image lacks common tools like a shell, package manager, or other utilities.

If you need to execute a script within the Fluent-bit container, such as setting up an entry point script, you'll need to create your own image. This custom image should include a shell binary and the entry point script. Here’s an example of how you can do that:

```Dockerfile
[label Dockerfile]
FROM fluent/fluent-bit
COPY bash /bin/bash
COPY entrypoint.sh /
ENTRYPOINT ["entrypoint.sh"]
```

This approach is akin to installing bash on a scratch Docker image, a process [detailed in this post](https://stackoverflow.com/questions/52001121/install-bash-on-scratch-docker-image).

Alternatively, you can use any base image that includes a package manager and then install Fluent-bit using the package manager. This method is covered in the [Fluent-bit documentation](https://docs.fluentbit.io/manual/installation/downloads/linux).

For example, your Dockerfile could look like this:

```Dockerfile
[label Dockerfile]
FROM alpine:3.14
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Install Fluent-bit using the one-line install script
RUN curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh
RUN systemctl enable fluent-bit
```

To continue learning more about Fluent-bit, check out our [guide on Fluent-bit](https://betterstack.com/community/guides/logging/fluent-bit-explained/), which walks you through the basics and more advanced concepts.