{"id":815979,"url":"http://patchwork.ozlabs.org/api/patches/815979/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/patch/20170920030210.19446-4-christian@paral.in/","project":{"id":27,"url":"http://patchwork.ozlabs.org/api/projects/27/?format=json","name":"Buildroot development","link_name":"buildroot","list_id":"buildroot.buildroot.org","list_email":"buildroot@buildroot.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170920030210.19446-4-christian@paral.in>","list_archive_url":null,"date":"2017-09-20T03:02:04","name":"[3/9] docker-engine: add support for init processes","commit_ref":null,"pull_url":null,"state":"rfc","archived":false,"hash":"7a196463dd74bf1c97112534eaa8f399e336d0ab","submitter":{"id":66856,"url":"http://patchwork.ozlabs.org/api/people/66856/?format=json","name":"Christian Stewart","email":"christian@paral.in"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/buildroot/patch/20170920030210.19446-4-christian@paral.in/mbox/","series":[{"id":4003,"url":"http://patchwork.ozlabs.org/api/series/4003/?format=json","web_url":"http://patchwork.ozlabs.org/project/buildroot/list/?series=4003","date":"2017-09-20T03:02:02","name":"Upgrading Go to 1.9 and Docker to v2017.07","version":1,"mbox":"http://patchwork.ozlabs.org/series/4003/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/815979/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/815979/checks/","tags":{},"related":[],"headers":{"Return-Path":"<buildroot-bounces@busybox.net>","X-Original-To":["incoming@patchwork.ozlabs.org","buildroot@lists.busybox.net"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","buildroot@osuosl.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=busybox.net\n\t(client-ip=140.211.166.137; helo=fraxinus.osuosl.org;\n\tenvelope-from=buildroot-bounces@busybox.net;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=paral-in.20150623.gappssmtp.com\n\theader.i=@paral-in.20150623.gappssmtp.com header.b=\"lsUlonua\";\n\tdkim-atps=neutral"],"Received":["from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxl905zFVz9s82\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 13:09:56 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 0C4798735C;\n\tWed, 20 Sep 2017 03:09:55 +0000 (UTC)","from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id gKlEHO__hc0C; Wed, 20 Sep 2017 03:09:54 +0000 (UTC)","from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 4F31687319;\n\tWed, 20 Sep 2017 03:09:54 +0000 (UTC)","from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 7DD731C41D9\n\tfor <buildroot@lists.busybox.net>;\n\tWed, 20 Sep 2017 03:09:50 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 7928387320\n\tfor <buildroot@lists.busybox.net>;\n\tWed, 20 Sep 2017 03:09:50 +0000 (UTC)","from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id cV-0lygZ_K5s for <buildroot@lists.busybox.net>;\n\tWed, 20 Sep 2017 03:09:48 +0000 (UTC)","from mail-wr0-f175.google.com (mail-wr0-f175.google.com\n\t[209.85.128.175])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 4893C87319\n\tfor <buildroot@buildroot.org>; Wed, 20 Sep 2017 03:09:48 +0000 (UTC)","by mail-wr0-f175.google.com with SMTP id m18so1018649wrm.2\n\tfor <buildroot@buildroot.org>; Tue, 19 Sep 2017 20:09:48 -0700 (PDT)","from ember.home ([2a00:23c1:5b80:3501:e08a:3b55:75b1:41fb])\n\tby smtp.gmail.com with ESMTPSA id\n\ti131sm585601wmf.31.2017.09.19.20.02.17\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 19 Sep 2017 20:02:20 -0700 (PDT)"],"X-Virus-Scanned":["amavisd-new at osuosl.org","amavisd-new at osuosl.org"],"X-Greylist":"from auto-whitelisted by SQLgrey-1.7.6","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=paral-in.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=01Mc7kNY/9TsK/Qjbx27uROhx3MeYY2VDNSSgl4MG+c=;\n\tb=lsUlonua1D7UR8VlvEphutI6mcbD5JfK58FWUxPI/oRI6rq17BmJQTSDH6arGIJySg\n\tOljHXmDmUcjo0B1yAVIGzrwJPr+J0FwP8Hb7KNLiJT7BphyHUo1+gCFZ4Ok/XkPvywlO\n\t7v//w8jAh23eQQyi2d3HbLS3S78KnLQjMLib9QC6S/B7mSdhzAyVac2C5wRPmYQdsPYd\n\tcb4q2JbhYAC5/vLO0hEBJZmBNAOk/rgJ7XL6wQ8pyfTbp8UY90GIJ/l2stSp3sODba50\n\tAmMkQph0AhWU2p5kh4//vSrEbjQRESdWGkqBkw4u77LToFCUQ91QuYxwbJM1G0RxSsj4\n\teGww==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=01Mc7kNY/9TsK/Qjbx27uROhx3MeYY2VDNSSgl4MG+c=;\n\tb=nh98Mk3/EgGw71hwTXYrAaxM47kONL2/fTPvsBnp7KeGnF8g8gD/SyWQbgyAeUU1iA\n\t0t53i4Mjkrn0KmmrfNVCPP8xeS/InSopG6+bQ4sl3dqW0HZlHNQCnbI9M2k7AiKG4TUY\n\tHveWob+J6Sg1nIb7lY9yMYO5x46r1J4BKUIBooK8r6jhh41zkPIE3TRho4aKOtDM7oI4\n\tL8Ypm9KKFyq0S84ZZQmNvJsLz1vvWmEIPYNU0o8NoMWrFiJuysOvp+kuH5hdJ9A8vXeH\n\tlyIlqYtB1oaJUws9qcw9GkZT+sRvrcSO8aoN/zUUA+2+7HM6EMjMmYEr3U3kRgs3/X++\n\t2yBA==","X-Gm-Message-State":"AHPjjUgXLAERLyhlRZE/ljefLa/DNlgTuFD7YmhOivXr68ZfW2SpnLmT\n\t+pH23WzXCPlK7MeC7iG3FRbE+c9m","X-Google-Smtp-Source":"AOwi7QBzjJMbrWeJKT7YTMSP4rdFfXg1A1zrRwn2pwj8zRMV2ridVglSfkFIiNBxkrj5H48VDzP1DQ==","X-Received":"by 10.223.174.175 with SMTP id y44mr451556wrc.35.1505876540399; \n\tTue, 19 Sep 2017 20:02:20 -0700 (PDT)","From":"Christian Stewart <christian@paral.in>","To":"buildroot@buildroot.org","Date":"Wed, 20 Sep 2017 04:02:04 +0100","Message-Id":"<20170920030210.19446-4-christian@paral.in>","X-Mailer":"git-send-email 2.13.5","In-Reply-To":"<20170920030210.19446-1-christian@paral.in>","References":"<20170920030210.19446-1-christian@paral.in>","Cc":"thomas.petazzoni@free-electrons.com, geoff@infradead.org,\n\tChristian Stewart <christian@paral.in>","Subject":"[Buildroot] [PATCH 3/9] docker-engine: add support for init\n\tprocesses","X-BeenThere":"buildroot@busybox.net","X-Mailman-Version":"2.1.18-1","Precedence":"list","List-Id":"Discussion and development of buildroot <buildroot.busybox.net>","List-Unsubscribe":"<http://lists.busybox.net/mailman/options/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=unsubscribe>","List-Archive":"<http://lists.busybox.net/pipermail/buildroot/>","List-Post":"<mailto:buildroot@busybox.net>","List-Help":"<mailto:buildroot-request@busybox.net?subject=help>","List-Subscribe":"<http://lists.busybox.net/mailman/listinfo/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=subscribe>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"buildroot-bounces@busybox.net","Sender":"\"buildroot\" <buildroot-bounces@busybox.net>"},"content":"When a docker container is run with the --init flag, the Docker engine\nuses the docker-init binary as PID 1 inside the container. This is\nnecessary in may cases to avoid issues with signal handling, zombie\nprocesses, and other quirks when running as PID 1.\n\nThe docker-init binary is backed by tini on default, but optionally can\nbe changed to docker-init by user preference.\n\nFurthermore, this patch fixes the following Docker error:\n\n  dockerd: level=warning msg=\"failed to retrieve docker-init version\"\n\nSigned-off-by: Christian Stewart <christian@paral.in>\n---\n package/docker-engine/Config.in        | 26 ++++++++++++++++++++++++++\n package/docker-engine/docker-engine.mk | 11 +++++++++++\n 2 files changed, 37 insertions(+)","diff":"diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in\nindex 05670a716e..7d9a87f7bb 100644\n--- a/package/docker-engine/Config.in\n+++ b/package/docker-engine/Config.in\n@@ -33,6 +33,32 @@ config BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT\n \n if BR2_PACKAGE_DOCKER_ENGINE_DAEMON\n \n+choice\n+\tbool \"docker-init to use\"\n+\tdefault BR2_PACKAGE_DOCKER_ENGINE_INIT_TINI\n+\thelp\n+\t  The docker engine uses a minimal init process as PID 1\n+\t  inside containers. There are several implementations\n+\t  of this init process.\n+\n+config BR2_PACKAGE_DOCKER_ENGINE_INIT_TINI\n+\tbool \"tini\"\n+\tselect BR2_PACKAGE_TINI\n+\thelp\n+\t  Use Tini as the container init process.\n+\n+\t  https://github.com/krallin/tini\n+\n+config BR2_PACKAGE_DOCKER_ENGINE_INIT_DUMB_INIT\n+\tbool \"dumb-init\"\n+\tselect BR2_PACKAGE_DUMB_INIT\n+\thelp\n+\t  Use dumb-init as the container init process.\n+\n+\t  https://github.com/Yelp/dumb-init\n+\n+endchoice\n+\n config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS\n \tbool \"btrfs filesystem driver\"\n \tdepends on BR2_USE_MMU # btrfs-progs\ndiff --git a/package/docker-engine/docker-engine.mk b/package/docker-engine/docker-engine.mk\nindex 8928f072e7..a2776ed78c 100644\n--- a/package/docker-engine/docker-engine.mk\n+++ b/package/docker-engine/docker-engine.mk\n@@ -50,6 +50,13 @@ endif\n ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)\n DOCKER_ENGINE_BUILD_TAGS += daemon\n DOCKER_ENGINE_BUILD_TARGETS += dockerd\n+\n+ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_INIT_DUMB_INIT),y)\n+DOCKER_ENGINE_INIT = dumb-init\n+else\n+DOCKER_ENGINE_INIT = tini\n+endif\n+\n endif\n \n ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y)\n@@ -119,6 +126,10 @@ define DOCKER_ENGINE_INSTALL_TARGET_CMDS\n \t$(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \\\n \t\t$(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target)\n \t)\n+\n+\t$(if $(filter $(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y), \\\n+\t\tln -fs $(DOCKER_ENGINE_INIT) $(TARGET_DIR)/usr/bin/docker-init\n+\t)\n endef\n \n $(eval $(generic-package))\n","prefixes":["3/9"]}