通过Ansible将文件复制到Docker容器

8ulbf1ek  于 2022-12-29  发布在  Docker
关注(0)|答案(1)|浏览(170)

我想将一个文件复制到一个Docker容器,这是我的Ansible剧本步骤之一。我使用jinja 2“模板”创建文件。我可以将文件复制到/tmp/中,然后运行命令将其复制到Docker容器,例如:
'docker cp/tmp/配置文件. json我的图像:/应用程序/配置文件/路径/'
但是我正在寻找不使用“/tmp”或类似的更好的方法。

dsekswqp

dsekswqp1#

Ansible有一个docker connection plugin,你可以用它来与剧本中现有的容器交互,例如,如果我有一个名为mycontainer的容器:

$ docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
07899303ac55   alpine    "sleep inf"   7 seconds ago   Up 2 seconds             mycontainer

我可以创建一个Ansible清单,如下所示,将ansible_connection变量设置为community.general.docker

all:
  hosts:
    mycontainer:
      ansible_connection: community.docker.docker

现在,我可以在这样一个剧本中瞄准容器:

- hosts: mycontainer
  gather_facts: false
  become: true
  tasks:
    - name: create target directory in container
      file:
        path: /target
        state: directory

    - name: copy a file into the container
      copy:
        src: example.file
        dest: /target/example.file

相关问题