Как импортировать дамп с Ansible в postgres внутри контейнера докера - PullRequest
0 голосов
/ 26 марта 2019

Я хочу импортировать дамп в панель управления Postgres.Вот мое определение задачи:

- name: Import DB
  shell: >
    cat /tmp/db.backup |
    docker-compose exec -T postgres \
    psql --username my_user
  args:
    chdir: "{{ working_directory }}"

Вот это

fatal: [staging_host]: FAILED! => {"changed": true, "cmd": "cat /tmp/db.backup | docker-compose exec -T postgres psql --username my_user", "delta": "0:00:00.392214", "end": "2019-03-26 15:26:07.443355", "msg": "non-zero return code", "rc": 1, "start": "2019-03-26 15:26:07.051141", "stderr": "psql: could not connect to server: No such file or directory\n\tIs the server running locally and accepting\n\tconnections on Unix domain socket \"/var/run/postgresql/.s.PGSQL.5432\"?\nread unix @->/var/run/docker.sock: read: connection reset by peer", "stderr_lines": ["psql: could not connect to server: No such file or directory", "\tIs the server running locally and accepting", "\tconnections on Unix domain socket \"/var/run/postgresql/.s.PGSQL.5432\"?", "read unix @->/var/run/docker.sock: read: connection reset by peer"], "stdout": "", "stdout_lines": []}

Нет проблем, если я запускаю команду в "cmd" вручную:

cat /tmp/db.backup | docker-compose exec -T postgres psql --username my_user

Я бы хотел как можно меньше зависимостей, поэтому я не хотел бы использовать postgresql_db

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Удалить строку продолжения "\". Введенные символом «>» новые строки заменяются пробелами в сложенном стиле .

- name: Import DB
  shell: >
    cat /tmp/db.backup |
    docker-compose exec -T postgres
    psql --username my_user
  args:
    chdir: "{{ working_directory }}"
0 голосов
/ 27 марта 2019

Решением является создание нового временного контейнера, монтирующего файл для импорта и перезаписывающего команду:

- name: Import DB
  shell: >
    docker-compose run -T --rm -v /tmp/db.backup:/tmp/db.backup postgres \
    psql --host postgres --username postgres < /tmp/db.backup
  args:
    chdir: "{{ working_directory }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...