pub struct DockerImpl {
pub image: Option<String>,
pub build: Option<String>,
pub dockerfile: Option<String>,
pub target: Option<String>,
pub args: IndexMap<String, String>,
pub init: Vec<String>,
pub idle: bool,
pub appliance: Option<Appliance>,
pub config: Option<String>,
pub firmware: Option<String>,
pub lxc: bool,
pub generated: Option<Generated>,
}Expand description
How a container produces a machine: an image, or one built from the project.
Fields§
§image: Option<String>A published image (exactly one of image and build).
build: Option<String>A folder of the project, built into the machine’s image as its build context (exactly
one of image and build).
dockerfile: Option<String>The Dockerfile, a file anywhere in the project (default: Dockerfile in build): an
image of your own around a vendored project’s source, without moving that source.
target: Option<String>The stage of a multi-stage Dockerfile to build (FROM ... AS <target>), when not its
last: the lab’s image beside the release one, from one Dockerfile.
args: IndexMap<String, String>Build arguments (ARGs of the Dockerfile), fixed values.
init: Vec<String>One-shot jobs (scripts or folders in the project) run before the machine counts as ready.
idle: boolThe image runs no service of its own (a stock Linux image whose command is a shell that exits at once): keep the container running idle, as a machine to work from.
appliance: Option<Appliance>The image is a network appliance Isoloom knows how to wire (a router or switch OS in a container): its management port, interface order and startup configuration are set the way the image expects, its addresses go into that configuration. Docker only.
config: Option<String>An appliance’s own configuration (a file in the project), added to the one Isoloom generates (hostname, credentials, interfaces and their addresses).
firmware: Option<String>The firmware an emulator boots (a file in the project): the IOS .bin of a Dynamips
router. Isoloom builds the emulator’s container itself, so no image then.
lxc: boolOn Proxmox, a machine with no vm: may run as an LXC container from its image (an
OCI image, Proxmox VE 9.1 or later) instead of ruling the proxmox target out. Opt-in:
an LXC container is no Docker container (no Docker runtime, no healthcheck, no named
volumes), so the author says the image runs as one. Ignored by every other target.
generated: Option<Generated>The image Isoloom builds from the machine’s configuration (app.steps): a Dockerfile it
generates, FROM the OS’s official image. Set by lowering, never written in a spec.
Trait Implementations§
Source§impl Clone for DockerImpl
impl Clone for DockerImpl
Source§impl Debug for DockerImpl
impl Debug for DockerImpl
Source§impl<'de> Deserialize<'de> for DockerImpl
impl<'de> Deserialize<'de> for DockerImpl
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for DockerImpl
impl JsonSchema for DockerImpl
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more