This repository contains definitions of Docker containers with a preinstalled Tebako packaging environment, and provides those built Docker containers.
Tebako containers offer a streamlined and isolated environment for packaging applications, ensuring consistency and reproducibility across different development setups. By using containers, developers can bypass the complexities of managing multiple dependencies on their local machines.
Tebako is an executable packager that simplifies the process of packaging applications that utilize an interpretive runtime, allowing for easy distribution.
It packages a set of files into a DwarFS file system for read-only purposes.
Please refer to the Tebako website for more details.
Tebako containers are available with different base images to suit various needs.
The currently available tags are:
ubuntu-20.04
-
This container is based on Ubuntu 20.04 LTS (
glibc
), providing a stable and widely used environment for packaging. alpine-3.17
-
This container is based on Alpine Linux 3.17 (
musl
), offering a smaller image size. Suitable for those who prefer a minimalistic approach.
Both containers are tailored for Tebako packaging, featuring preinstalled Ruby environments versions 3.2.5 and 3.3.4.
There are two primary methods for packaging with Tebako: from inside the container and from outside using Docker commands.
You can also package your application from outside the container by running a single Docker command.
This command mounts your workspace into the container and runs the
tebako press
command, specifying:
-
application root
-
entry point
-
output location
-
Ruby version
$ docker run -v <application_folder>:/mnt/w \
-t ghcr.io/tamatebako/tebako-${{ container_tag }}:latest \
tebako press <tebako press parameters>
fontist
with an ephemeral containerA Ruby application called fontist
inside fontist/
under the current
directory, can be packaged into ./fontist-package
using the following command.
docker run -v $PWD:/mnt/w \
-t ghcr.io/tamatebako/tebako-ubuntu-20.04:latest \
tebako press --root=/mnt/w/fontist --entry-point=fontist --output=/mnt/w/fontist-package --Ruby=3.2.5
To package your application from inside the Tebako container, follow these steps:
-
Pull the Tebako container image:
$ docker pull ghcr.io/tamatebako/tebako-<container_tag>:latest
Replace
<container_tag>
with the desired container tag (e.g.,ubuntu-20.04
oralpine-3.17
). -
Start and enter the container interactively:
$ docker run -it --rm -v <application_folder>:/mnt/w ghcr.io/tamatebako/tebako-<container_tag>:latest bash
Replace
<container_tag>
with the appropriate tag and<application_folder>
with the path to your application folder. -
Once inside, run the
tebako press
command:$ tebako press <tebako press parameters>
fontist
with a persistent containerA Ruby application called fontist
inside fontist/
under the current
directory, can be packaged into ./fontist-package
using the following command.
# Starting a persistent container
$ docker run -it --rm -v $PWD:/mnt/w ghcr.io/tamatebako/tebako-<container_tag>:latest bash
# Run this after entering the container
$ tebako press --root=/mnt/w/fontist --entry-point=fontist --output=/mnt/w/fontist-package --Ruby=3.2.5