Я создал postgres контейнер, который работает отдельно.
Я хотел бы иметь возможность создать команду в файле Makefile make psql
, где я могу подключиться с моего хост-компьютера к контейнеру через psql и проверить правильность вставки данных.
Я борюсь с тем, как составить команду makefile. Пока я получил:
Makefile
PG_CONTAINER=project_ch_pg_run_1
test_ip_1:
docker exec -it project_ch_pg_run_1 hostname -i
test_ip_2:
docker exec -it $(PG_CONTAINER) hostname -i
test_ip_3:
IP=$$(docker exec -it $(PG_CONTAINER) hostname -i); \
echo "Here's the IP of the container:$(IP)"
pslq:
IP=$$(docker exec -it project_ch_pg_run_1 hostname -i); \
psql postgres://ch_user:ch_pass@$(IP):5432/ch_dib
Результаты:
1 работает отлично.
make test_ip_1
docker exec -it project_ch_pg_run_1 hostname -i
192.168.96.2
2 работает подстановка переменных.
docker exec -it project_ch_pg_run_1 hostname -i
192.168.96.2
3 сохранение результата команды в IP
переменной и выполнение подстановки не работает.
IP=$(docker exec -it project_ch_pg_run_1 hostname -i); \
echo "Here's the IP of the container:"
Here's the IP of the container:
4 сохранение результата команды в IP
переменная и использовать ее для составления pg URI не работает.
IP=$(docker exec -it project_ch_pg_run_1 hostname -i); \
psql postgres://ch_user:ch_pass@:5432/ch_dib
psql: error: could not connect to server: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Makefile:15: recipe for target 'psql' failed
make: *** [psql] Error 2
Я искал много часов, но не могу найти правильный синтаксис для цепочки этих команд - любая помощь будет очень признательна.