ANSIBLE PlayBook Копировать файл в Docker-контейнер - PullRequest
0 голосов
/ 14 марта 2019

Я хочу скопировать файл в Docker-контейнер, используя ANSIBLE PlayBook. Как я могу это сделать?

- name: kapacitor conf
  template: src=/home/debian/roles/tick_install/files/kapacitor.conf  dest=/etc/kapacitor/kapaci
my docker container = tick_kapacitor

1 Ответ

0 голосов
/ 14 марта 2019

Я предполагаю, что вы используете простой контейнер Docker без согласованного решения (такого как Kubernetes или Swarm). Если ваш контейнер уже запущен, это будет зависеть от:

Без установленного объема

Если вы хотите скопировать файл в существующий контейнер, в котором нет смонтированного тома, на который вы хотите скопировать файл, я не вижу другого пути, кроме как запустить команду docker cp через shell или command Например:

- name: Copy file into existing container at /path/in/the/container/kapaci
  shell: docker cp /etc/kapacitor/kapaci tick_kapacitor:/path/in/the/container/kapaci

С объемом, установленным в контейнере

Если у вас уже есть том, смонтированный с машины в контейнер, вы можете скопировать файл непосредственно в точке монтирования машины. Например, если у контейнера есть том, смонтированный с /var/myapp/data до /path/in/the/container, вы можете использовать template, чтобы скопировать файл непосредственно в контейнер с подключенным томом:

name: kapacitor conf 
template: 
  src: /home/debian/roles/tick_install/files/kapacitor.conf
  dest: /var/myapp/data/kapacitor.conf
  # will be available in container at /path/in/the/container

Запуск нового контейнера

Если вы хотите запустить новый контейнер, вы можете использовать модуль docker_container или запустить команду (docker run, docker-compose up... ...), которая запустит ваш контейнер и затем скопирует файл в него, используя одно из ранее упомянутых решений.

...