community.docker.docker_container_copy_into (3.8.1) — module

Copy a file into a Docker container

| "added in version" 3.4.0 of community.docker"

Authors: Felix Fontein (@felixfontein)

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install community.docker:==3.8.1


Add to requirements.yml

  collections:
    - name: community.docker
      version: 3.8.1

Description

Copy a file into a Docker container.

Similar to C(docker cp).

To copy files in a non-running container, you must provide the O(owner_id) and O(group_id) options. This is also necessary if the container does not contain a C(/bin/sh) shell with an C(id) tool.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Copy a file into the container
  community.docker.docker_container_copy_into:
    container: mydata
    path: /home/user/data.txt
    container_path: /data/input.txt
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Copy a file into the container with owner, group, and mode set
  community.docker.docker_container_copy_into:
    container: mydata
    path: /home/user/bin/runme.o
    container_path: /bin/runme
    owner: 0  # root
    group: 0  # root
    mode: 0o755  # readable and executable by all users, writable by root

Inputs

    
tls:
    default: false
    description:
    - Secure the connection to the API by using TLS without verifying the authenticity
      of the Docker host server. Note that if O(validate_certs) is set to V(true) as well,
      it will take precedence.
    - If the value is not specified in the task, the value of environment variable E(DOCKER_TLS)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    type: bool

mode:
    description:
    - The file mode to use when writing the file to disk.
    - Will use the file's mode from the source system if this option is not provided.
    type: int

path:
    description:
    - Path to a file on the managed node.
    - Mutually exclusive with O(content). One of O(content) and O(path) is required.
    type: path

debug:
    default: false
    description:
    - Debug mode
    type: bool

force:
    description:
    - If set to V(true), force writing the file (without performing any idempotency checks).
    - If set to V(false), only write the file if it does not exist on the target. If a
      filesystem object exists at the destination, the module will not do any change.
    - If this option is not specified, the module will be idempotent. To verify idempotency,
      it will try to get information on the filesystem object in the container, and if
      everything seems to match will download the file from the container to compare it
      to the file to upload.
    type: bool

follow:
    default: false
    description:
    - This flag indicates that filesystem links in the Docker container, if they exist,
      should be followed.
    type: bool

ca_path:
    aliases:
    - ca_cert
    - tls_ca_cert
    - cacert_path
    description:
    - Use a CA certificate when performing server verification by providing the path to
      a CA certificate file.
    - If the value is not specified in the task and the environment variable E(DOCKER_CERT_PATH)
      is set, the file C(ca.pem) from the directory specified in the environment variable
      E(DOCKER_CERT_PATH) will be used.
    - This option was called O(ca_cert) and got renamed to O(ca_path) in community.docker
      3.6.0. The old name has been added as an alias and can still be used.
    type: path

content:
    description:
    - The file's content.
    - If you plan to provide binary data, provide it pre-encoded to base64, and set O(content_is_b64=true).
    - Mutually exclusive with O(path). One of O(content) and O(path) is required.
    type: str

timeout:
    default: 60
    description:
    - The maximum amount of time in seconds to wait on a response from the API.
    - If the value is not specified in the task, the value of environment variable E(DOCKER_TIMEOUT)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    type: int

group_id:
    description:
    - The group ID to use when writing the file to disk.
    - If provided, O(owner_id) must also be provided.
    - If not provided, the module will try to determine the user and group ID for the
      current user in the container. This will only work if C(/bin/sh) is present in the
      container and the C(id) binary or shell builtin is available. Also the container
      must be running.
    type: int

owner_id:
    description:
    - The owner ID to use when writing the file to disk.
    - If provided, O(group_id) must also be provided.
    - If not provided, the module will try to determine the user and group ID for the
      current user in the container. This will only work if C(/bin/sh) is present in the
      container and the C(id) binary or shell builtin is available. Also the container
      must be running.
    type: int

container:
    description:
    - The name of the container to copy files to.
    required: true
    type: str

client_key:
    aliases:
    - tls_client_key
    - key_path
    description:
    - Path to the client's TLS key file.
    - If the value is not specified in the task and the environment variable E(DOCKER_CERT_PATH)
      is set, the file C(key.pem) from the directory specified in the environment variable
      E(DOCKER_CERT_PATH) will be used.
    type: path

api_version:
    aliases:
    - docker_api_version
    default: auto
    description:
    - The version of the Docker API running on the Docker Host.
    - Defaults to the latest version of the API supported by this collection and the docker
      daemon.
    - If the value is not specified in the task, the value of environment variable E(DOCKER_API_VERSION)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    type: str

client_cert:
    aliases:
    - tls_client_cert
    - cert_path
    description:
    - Path to the client's TLS certificate file.
    - If the value is not specified in the task and the environment variable E(DOCKER_CERT_PATH)
      is set, the file C(cert.pem) from the directory specified in the environment variable
      E(DOCKER_CERT_PATH) will be used.
    type: path

docker_host:
    aliases:
    - docker_url
    default: unix:///var/run/docker.sock
    description:
    - The URL or Unix socket path used to connect to the Docker API. To connect to a remote
      host, provide the TCP connection string. For example, V(tcp://192.0.2.23:2376).
      If TLS is used to encrypt the connection, the module will automatically replace
      C(tcp) in the connection URL with C(https).
    - If the value is not specified in the task, the value of environment variable E(DOCKER_HOST)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    type: str

ssl_version:
    description:
    - Provide a valid SSL version number. Default value determined by L(SSL Python module,
      https://docs.python.org/3/library/ssl.html).
    - If the value is not specified in the task, the value of environment variable E(DOCKER_SSL_VERSION)
      will be used instead.
    type: str

local_follow:
    default: true
    description:
    - This flag indicates that filesystem links in the source tree (where the module is
      executed), if they exist, should be followed.
    type: bool

tls_hostname:
    description:
    - When verifying the authenticity of the Docker Host server, provide the expected
      name of the server.
    - If the value is not specified in the task, the value of environment variable E(DOCKER_TLS_HOSTNAME)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    - Note that this option had a default value V(localhost) in older versions. It was
      removed in community.docker 3.0.0.
    type: str

container_path:
    description:
    - Path to a file inside the Docker container.
    - Must be an absolute path.
    required: true
    type: str

content_is_b64:
    default: false
    description:
    - If set to V(true), the content in O(content) is assumed to be Base64 encoded and
      will be decoded before being used.
    - To use binary O(content), it is better to keep it Base64 encoded and let it be decoded
      by this option. Otherwise you risk the data to be interpreted as UTF-8 and corrupted.
    type: bool

use_ssh_client:
    default: false
    description:
    - For SSH transports, use the C(ssh) CLI tool instead of paramiko.
    type: bool
    version_added: 1.5.0
    version_added_collection: community.docker

validate_certs:
    aliases:
    - tls_verify
    default: false
    description:
    - Secure the connection to the API by using TLS and verifying the authenticity of
      the Docker host server.
    - If the value is not specified in the task, the value of environment variable E(DOCKER_TLS_VERIFY)
      will be used instead. If the environment variable is not set, the default value
      will be used.
    type: bool

Outputs

container_path:
  description:
  - The actual path in the container.
  - Can only be different from O(container_path) when O(follow=true).
  returned: success
  type: str