docker exec с командой mongorestore /root/database
Но проблема в том, что каждый раз контейнер запускается со случайным id и чтобы выполнить команду, надо знать id.
например может быть так docker exec external_mongodb.1.rovxdjbtd397fkgqkl8775gep
Пытался сделать так (с маской контейнера):
- name: Mongo restore data
community.docker.docker_container_exec:
container: external_mongodb*
command: mongorestore /root/database
register: restore_result
Получаю ошибку что нет контейнера с таким именем. Как решить проблему можно?
Сделал так: - name: Getting mongo container ID shell: docker container ls --filter name=external_mongodb --format "{{ '{{' }} .Names}}" register: mongo_id - name: Mongo restore data community.docker.docker_container_exec: container: "{{ mongo_id.stdout }}" command: mongorestore /root/database register: restore_result
Я думал у ансибла есть отдельный модуль для запроса запущенных контейнеров
Если не используется пайп и другие штуки шелла, рекомендуют использовать command
1) можно обращаться по имени а не айди, и это работает (проверено), имя задаётся при запуске docker run -ti -d --rm --name test redis:6.2.6 docker exec test ls -la total 8 drwxr-xr-x 2 redis redis 4096 Apr 20 13:29 . drwxr-xr-x 1 root root 4096 Sep 13 11:12 .. 2) https://docs.ansible.com/ansible/2.9/modules/docker_container_module.html command raw Command to execute when the container starts. A command may be either a string or a list. Prior to version 2.4, strings were split on commas. можно подумать как прикрутить
первый блок не нужен
У него сворм. Я его смрад за километр чую
docker_swarm module – Manage Swarm cluster docker_swarm_info module – Retrieves facts about Docker Swarm cluster. docker_swarm_service module – docker swarm service docker_swarm_service_info module – Retrieves information about docker services from a Swarm Manager
Обсуждают сегодня