Support for own init on image (#1542)

* Support for own init on image

* fix params
This commit is contained in:
Pascal Vizeli 2020-02-28 23:15:46 +01:00 committed by GitHub
parent e1cbfdd84b
commit 920f7f2ece
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 12 additions and 1 deletions

View File

@ -31,6 +31,7 @@ from ..const import (
ATTR_HOST_PID, ATTR_HOST_PID,
ATTR_IMAGE, ATTR_IMAGE,
ATTR_INGRESS, ATTR_INGRESS,
ATTR_INIT,
ATTR_KERNEL_MODULES, ATTR_KERNEL_MODULES,
ATTR_LEGACY, ATTR_LEGACY,
ATTR_LOCATON, ATTR_LOCATON,
@ -344,6 +345,11 @@ class AddonModel(CoreSysAttributes):
"""Return Exclude list for snapshot.""" """Return Exclude list for snapshot."""
return self.data.get(ATTR_SNAPSHOT_EXCLUDE, []) return self.data.get(ATTR_SNAPSHOT_EXCLUDE, [])
@property
def default_init(self) -> bool:
"""Return True if the add-on have no own init."""
return self.data[ATTR_INIT]
@property @property
def with_stdin(self) -> bool: def with_stdin(self) -> bool:
"""Return True if the add-on access use stdin input.""" """Return True if the add-on access use stdin input."""

View File

@ -44,6 +44,7 @@ from ..const import (
ATTR_INGRESS_PANEL, ATTR_INGRESS_PANEL,
ATTR_INGRESS_PORT, ATTR_INGRESS_PORT,
ATTR_INGRESS_TOKEN, ATTR_INGRESS_TOKEN,
ATTR_INIT,
ATTR_KERNEL_MODULES, ATTR_KERNEL_MODULES,
ATTR_LEGACY, ATTR_LEGACY,
ATTR_LOCATON, ATTR_LOCATON,
@ -189,6 +190,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema(
vol.Optional(ATTR_URL): vol.Url(), vol.Optional(ATTR_URL): vol.Url(),
vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.In(STARTUP_ALL)), vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.In(STARTUP_ALL)),
vol.Required(ATTR_BOOT): vol.In([BOOT_AUTO, BOOT_MANUAL]), vol.Required(ATTR_BOOT): vol.In([BOOT_AUTO, BOOT_MANUAL]),
vol.Optional(ATTR_INIT, default=True): vol.Boolean(),
vol.Optional(ATTR_ADVANCED, default=False): vol.Boolean(), vol.Optional(ATTR_ADVANCED, default=False): vol.Boolean(),
vol.Optional(ATTR_STAGE, default=AddonStages.STABLE): vol.Coerce(AddonStages), vol.Optional(ATTR_STAGE, default=AddonStages.STABLE): vol.Coerce(AddonStages),
vol.Optional(ATTR_PORTS): DOCKER_PORTS, vol.Optional(ATTR_PORTS): DOCKER_PORTS,

View File

@ -237,6 +237,7 @@ ATTR_CARD = "card"
ATTR_INDEX = "index" ATTR_INDEX = "index"
ATTR_ACTIVE = "active" ATTR_ACTIVE = "active"
ATTR_APPLICATION = "application" ATTR_APPLICATION = "application"
ATTR_INIT = "init"
PROVIDE_SERVICE = "provide" PROVIDE_SERVICE = "provide"
NEED_SERVICE = "need" NEED_SERVICE = "need"

View File

@ -344,7 +344,7 @@ class DockerAddon(DockerInterface):
name=self.name, name=self.name,
hostname=self.addon.hostname, hostname=self.addon.hostname,
detach=True, detach=True,
init=True, init=self.addon.default_init,
privileged=self.full_access, privileged=self.full_access,
ipc_mode=self.ipc, ipc_mode=self.ipc,
stdin_open=self.addon.with_stdin, stdin_open=self.addon.with_stdin,

View File

@ -41,6 +41,7 @@ class DockerAudio(DockerInterface, CoreSysAttributes):
docker_container = self.sys_docker.run( docker_container = self.sys_docker.run(
self.image, self.image,
version=self.sys_audio.version, version=self.sys_audio.version,
init=False,
ipv4=self.sys_docker.network.audio, ipv4=self.sys_docker.network.audio,
name=self.name, name=self.name,
hostname=self.name.replace("_", "-"), hostname=self.name.replace("_", "-"),

View File

@ -41,6 +41,7 @@ class DockerDNS(DockerInterface, CoreSysAttributes):
docker_container = self.sys_docker.run( docker_container = self.sys_docker.run(
self.image, self.image,
version=self.sys_dns.version, version=self.sys_dns.version,
init=False,
dns=False, dns=False,
ipv4=self.sys_docker.network.dns, ipv4=self.sys_docker.network.dns,
name=self.name, name=self.name,