Я работаю с простой базой данных postgres и docker. В настоящее время у меня есть файл docker -compose, который создает нужный мне контейнер и загружает в файлы SQL. После загрузки этих данных я бы хотел выполнить простой запрос через скрипт bash, который я собираюсь использовать для некоторых базовых тестов c (т. Е. Подтвердить количество строк> 0, et c) Для начала я просто пытаюсь создать простой сценарий, который будет запускать и выводить количество строк (тогда я могу беспокоиться о проведении реального тестирования). Вот что у меня есть:
docker -compose.yml:
services:
postgres:
image: postgres
environment:
POSTGRES_DB: test-db
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- ./database/create_table.sql:/docker-entrypoint-initdb.d/create_table.sql
- ./databases/data.sql:/docker-entrypoint-initdb.d/data.sql
- ./script/test.sh:/docker-entrypoint-initdb.d/test.sh
test. sh:
#!/bin/bash
echo "Accessing bash terminal of DB container"
docker exec -it postgres_1 bash
echo "Accessing psql terminal"
psql -U postgres
echo "Connecting to database"
\c database
echo "Checking number of rows"
numrows = $("SELECT count(*) FROM my_table")
echo numrows + " found."
В настоящее время, когда я запускаю docker -compose, он создает данные из моего SQL файлы, а затем бездействует. Есть ли что-то еще, что мне нужно для запуска моего скрипта? Я могу сделать все это самостоятельно через отдельный терминал, но я хотел бы, чтобы все это было автоматизировано, чтобы я мог просто добавить тесты в свой тест . sh и затем запустите его, вместо того, чтобы делать это каждый раз вручную. Что мне здесь не хватает? Разве мой скрипт не должен работать, поскольку я действительно просто воссоздал команды, которые выполнял вручную? Спасибо за любую помощь!