class Aws::Batch::Types::LinuxParameters

Linux-specific modifications that are applied to the container, such as details for device mappings.

@note When making an API call, you may pass LinuxParameters

data as a hash:

    {
      devices: [
        {
          host_path: "String", # required
          container_path: "String",
          permissions: ["READ"], # accepts READ, WRITE, MKNOD
        },
      ],
      init_process_enabled: false,
      shared_memory_size: 1,
      tmpfs: [
        {
          container_path: "String", # required
          size: 1, # required
          mount_options: ["String"],
        },
      ],
      max_swap: 1,
      swappiness: 1,
    }

@!attribute [rw] devices

Any host devices to expose to the container. This parameter maps to
`Devices` in the [Create a container][1] section of the [Docker
Remote API][2] and the `--device` option to [docker run][3].

<note markdown="1"> This parameter isn't applicable to jobs that are running on Fargate
resources and shouldn't be provided.

 </note>

[1]: https://docs.docker.com/engine/api/v1.23/#create-a-container
[2]: https://docs.docker.com/engine/api/v1.23/
[3]: https://docs.docker.com/engine/reference/run/
@return [Array<Types::Device>]

@!attribute [rw] init_process_enabled

If true, run an `init` process inside the container that forwards
signals and reaps processes. This parameter maps to the `--init`
option to [docker run][1]. This parameter requires version 1.25 of
the Docker Remote API or greater on your container instance. To
check the Docker Remote API version on your container instance, log
into your container instance and run the following command: `sudo
docker version | grep "Server API version"`

[1]: https://docs.docker.com/engine/reference/run/
@return [Boolean]

@!attribute [rw] shared_memory_size

The value for the size (in MiB) of the `/dev/shm` volume. This
parameter maps to the `--shm-size` option to [docker run][1].

<note markdown="1"> This parameter isn't applicable to jobs that are running on Fargate
resources and shouldn't be provided.

 </note>

[1]: https://docs.docker.com/engine/reference/run/
@return [Integer]

@!attribute [rw] tmpfs

The container path, mount options, and size (in MiB) of the tmpfs
mount. This parameter maps to the `--tmpfs` option to [docker
run][1].

<note markdown="1"> This parameter isn't applicable to jobs that are running on Fargate
resources and shouldn't be provided.

 </note>

[1]: https://docs.docker.com/engine/reference/run/
@return [Array<Types::Tmpfs>]

@!attribute [rw] max_swap

The total amount of swap memory (in MiB) a container can use. This
parameter is translated to the `--memory-swap` option to [docker
run][1] where the value is the sum of the container memory plus the
`maxSwap` value. For more information, see [ `--memory-swap`
details][2] in the Docker documentation.

If a `maxSwap` value of `0` is specified, the container doesn't use
swap. Accepted values are `0` or any positive integer. If the
`maxSwap` parameter is omitted, the container doesn't use the swap
configuration for the container instance it is running on. A
`maxSwap` value must be set for the `swappiness` parameter to be
used.

<note markdown="1"> This parameter isn't applicable to jobs that are running on Fargate
resources and shouldn't be provided.

 </note>

[1]: https://docs.docker.com/engine/reference/run/
[2]: https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details
@return [Integer]

@!attribute [rw] swappiness

This allows you to tune a container's memory swappiness behavior. A
`swappiness` value of `0` causes swapping not to happen unless
absolutely necessary. A `swappiness` value of `100` causes pages to
be swapped very aggressively. Accepted values are whole numbers
between `0` and `100`. If the `swappiness` parameter isn't
specified, a default value of `60` is used. If a value isn't
specified for `maxSwap`, then this parameter is ignored. If
`maxSwap` is set to 0, the container doesn't use swap. This
parameter maps to the `--memory-swappiness` option to [docker
run][1].

Consider the following when you use a per-container swap
configuration.

* Swap space must be enabled and allocated on the container instance
  for the containers to use.

  <note markdown="1"> The Amazon ECS optimized AMIs don't have swap enabled by default.
  You must enable swap on the instance to use this feature. For more
  information, see [Instance Store Swap Volumes][2] in the *Amazon
  EC2 User Guide for Linux Instances* or [How do I allocate memory
  to work as swap space in an Amazon EC2 instance by using a swap
  file?][3]

   </note>

* The swap space parameters are only supported for job definitions
  using EC2 resources.

* If the `maxSwap` and `swappiness` parameters are omitted from a
  job definition, each container will have a default `swappiness`
  value of 60, and the total swap usage will be limited to two times
  the memory reservation of the container.

<note markdown="1"> This parameter isn't applicable to jobs that are running on Fargate
resources and shouldn't be provided.

 </note>

[1]: https://docs.docker.com/engine/reference/run/
[2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html
[3]: http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/
@return [Integer]

@see docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/LinuxParameters AWS API Documentation

Constants

SENSITIVE