1
0
Fork 0

Initial commit

master
Dustin 2022-08-07 10:36:18 -05:00
commit 6ff519aecd
6 changed files with 59 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/_build/

0
Config.in Normal file
View File

42
README.md Normal file
View File

@ -0,0 +1,42 @@
# Minimal Base Python Container Image
The *pythonctnr* image contains ONLY the Python runtime, and nothing else. It
is suitable for deploying applications written in pure Python, without any
external library dependencies. No shell or other OS utilities are included.
Just `/usr/bin/python3` and the libraries it needs to run.
## Building
The contents of the container image are built with [buildroot][0].
```sh
make -C ~/src/buildroot O=${PWD}/_build pythonctnr_defconfig
make -C _build
```
This will produce a `rootfs.tar` tarball in `_build/images`, which is then
converted to a container image using `buildah`.
```sh
ctnr=$(buildah from scratch)
buildah add ${ctnr} _build/images/rootfs.tar /
buildah commit ${ctnr} pythonctnr:latest
```
[0]: https://buildroot.org/
## Usage
The container image can be used like any other image, e.g. in a `Dockerfile`.
*pip* is included, to allow installing Python distribution packages.
```Dockerfile
FROM pythonctnr
RUN ["/usr/bin/python3", "-m", "pip", "install", "mypkg"]
```
**NOTE**: Because there is no shell, the default string form of the `RUN`
instruction does not work. You must use the *exec* form.

View File

@ -0,0 +1,14 @@
BR2_x86_64=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TARGET_GENERIC_HOSTNAME="pythonctnr"
BR2_TARGET_GENERIC_ISSUE=""
BR2_INIT_NONE=y
BR2_ROOTFS_MERGED_USR=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_TARGET_GENERIC_GETTY is not set
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_PIP=y

2
external.desc Normal file
View File

@ -0,0 +1,2 @@
name: pythonctnr
desc: Python container image

0
external.mk Normal file
View File