tini: new package
PATCH 1/1 tini: new package
Tini is a minimal init process to act as PID 1 for containers.
Note: it is not necessary to compile Tini statically for many non-docker container environments, and Docker now statically links to Tini internally (as of 1.13).
--- package/Config.in | 1 + package/tini/Config.in | 16 ++++++++++++++++ package/tini/tini.hash | 3 +++ package/tini/tini.mk | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 package/tini/Config.in create mode 100644 package/tini/tini.hash create mode 100644 package/tini/tini.mk
package/Config.in +1 -0
@@ -1996,6 +1996,7 @@ comment "Utilities" source "package/sudo/Config.in" source "package/terminology/Config.in" source "package/time/Config.in" + source "package/tini/Config.in" source "package/tmux/Config.in" source "package/which/Config.in" source "package/xmlstarlet/Config.in"
package/tini/Config.in new file +16 -0
@@ -0,0 +1,16 @@ +config BR2_PACKAGE_TINI + bool "tini" + help + tini is a simple but valid init binary to + act as PID 1 for containers. + + https://github.com/krallin/tini + +if BR2_PACKAGE_TINI + +config BR2_PACKAGE_TINI_MINIMAL + bool "build minimal variant" + help + Disables argument parsing and verbose output. + +endif
package/tini/tini.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally computed +sha256 e5f46bca81266bdd511cf08018d66866870531794569c04f9b45f50dd23c28b0 LICENSE +sha256 1097675352d6317b547e73f9dc7c6839fd0bb0d96dafc2e5c95506bb324049a2 tini-v0.18.0.tar.gz
package/tini/tini.mk new file +37 -0
@@ -0,0 +1,37 @@ +################################################################################ +# +# tini +# +################################################################################ + +TINI_VERSION = v0.18.0 +TINI_SITE = $(call github,krallin,tini,$(TINI_VERSION)) + +TINI_LICENSE = MIT +TINI_LICENSE_FILES = LICENSE + +TINI_CFLAGS = $(TARGET_CFLAGS) \ + -DTINI_VERSION=\"$(TINI_VERSION)\" \ + -DTINI_GIT=\"\" + +ifeq ($(BR2_PACKAGE_TINI_MINIMAL),y) +TINI_CFLAGS += -DTINI_MINIMAL +endif + +define TINI_CONFIGURE_CMDS + printf "#pragma once\n" > $(@D)/src/tiniConfig.h +endef + +define TINI_BUILD_CMDS + mkdir -p $(@D)/bin + $(TARGET_CC) \ + $(TINI_CFLAGS) \ + -o $(@D)/bin/tini $(@D)/src/tini.c +endef + +define TINI_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/bin/tini $(TARGET_DIR)/usr/bin/tini +endef + +# Tini's CMakeLists.txt is not suitable for Buildroot. +$(eval $(generic-package))
Signature · 1 line
2.16.4
PATCH 1/1 tini: new package
Hello,
Quoted 3 lines · Christian Stewart
Note: it is not necessary to compile Tini statically for many non-docker container environments, and Docker now statically links to Tini internally (as of 1.13).
What does "Docker now statically links to Tiny internally" mean ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 1/1 tini: new package
Hi Thomas,
Quoted 2 lines · Thomas Petazzoni
What does "Docker now statically links to Tiny internally" mean ?
I suppose the commit note is not clear. I am basically saying that we do not need to statically link Tini, unlike previous revisions of this commit. The intent of this package is no longer to satisfy the docker-init requirement, but instead to just provide the "tini" binary in the target environment, dynamically linked or otherwise.
According to https://github.com/krallin/tini - NOTE: If you are using Docker 1.13 or greater, Tini is included in Docker itself. This includes all versions of Docker CE. To enable Tini, just pass the --init flag to docker run.
This was the source of the original reasoning of the note.
~ Christian
PATCH 1/1 tini: new package
Hello,
Quoted 10 lines · Christian Stewart
Quoted 2 lines · Thomas Petazzoni
What does "Docker now statically links to Tiny internally" mean ?
I suppose the commit note is not clear. I am basically saying that we do not need to statically link Tini, unlike previous revisions of this commit. The intent of this package is no longer to satisfy the docker-init requirement, but instead to just provide the "tini" binary in the target environment, dynamically linked or otherwise.
Why did the requirement change ?
Quoted 4 lines
According to https://github.com/krallin/tini - NOTE: If you are using Docker 1.13 or greater, Tini is included in Docker itself. This includes all versions of Docker CE. To enable Tini, just pass the --init flag to docker run.
If Tini is included in Docker itself, why do we need a package for it ?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH 1/1 tini: new package
Thomas,
Quoted 10 lines · Thomas Petazzoni
Hello,
Quoted 5 lines · Christian Stewart
Quoted 2 lines · Thomas Petazzoni
What does "Docker now statically links to Tiny internally" mean ?
Quoted 7 lines
Quoted 5 lines
I suppose the commit note is not clear. I am basically saying that we do not need to statically link Tini, unlike previous revisions of this commit. The intent of this package is no longer to satisfy the docker-init requirement, but instead to just provide the "tini" binary in the target environment, dynamically linked or otherwise.
Why did the requirement change ?
Tini can be used for cases where you do a basic container and the filesystem isn't isolated from the host. Thus no need for static building of the init process.
Quoted 7 lines
Quoted 5 lines
According to https://github.com/krallin/tini - NOTE: If you are using Docker 1.13 or greater, Tini is included in Docker itself. This includes all versions of Docker CE. To enable Tini, just pass the --init flag to docker run.
If Tini is included in Docker itself, why do we need a package for it ?
Basic LXC based containers can use it when are doing an abbreviated init sequence for a container start.
Matt
PATCH 1/1 tini: new package
In reply to Christian StewartHello,
Quoted 8 lines · Christian Stewart
Tini is a minimal init process to act as PID 1 for containers.
Note: it is not necessary to compile Tini statically for many non-docker container environments, and Docker now statically links to Tini internally (as of 1.13).
Tested-by Matt Weber <[email protected]>Signed-off-by Christian Stewart <[email protected]>
Quoted 9 lines
--- package/Config.in | 1 + package/tini/Config.in | 16 ++++++++++++++++ package/tini/tini.hash | 3 +++ package/tini/tini.mk | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 package/tini/Config.in create mode 100644 package/tini/tini.hash create mode 100644 package/tini/tini.mk
The entry to the DEVELOPERS file was missing, so I've added it, and applied.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com