Как передать переменную среды в файл .sql? - PullRequest
1 голос
/ 26 июня 2019

Я устанавливаю переменные окружения в Dockerfile, на который я хочу ссылаться в файле .sql. Этот файл находится в /docker-entrypoint-initdb.d, так как initdb запустит его.

Как передать переменную окружения? (например, SELECT * FROM $myEnvironmentVariableHere;)

1 Ответ

0 голосов
/ 26 июня 2019

Есть несколько способов сделать это, но самым простым может быть использование простого сценария оболочки с HEREDOC:

Вот сценарий, который вызывается в scripts / test.sh

#!/bin/bash

psql << EOF
SELECT * FROM $MYVAR LIMIT 1;
EOF

Вот как его запустить:

docker run --rm  --name test_pg -v $PWD/scripts:/docker-entrypoint-initdb.d -e "MYVAR=pg_class" postgres:latest

Среди различных загрузочных сообщений вы увидите следующие строки:

/usr/local/bin/docker-entrypoint.sh: sourcing /docker-entrypoint-initdb.d/test.sh
   relname    | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhasoids | relhasrules | relhastriggers | relhassubclass | relrowsecurity | relforcerowsecurity | relispopulated | relreplident | relispartition | relrewrite | relfrozenxid | relminmxid |           relacl            | reloptions | relpartbound
--------------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+------------+-------------+----------------+----------------+----------------+---------------------+----------------+--------------+----------------+------------+--------------+------------+-----------------------------+------------+--------------
 pg_statistic |           11 |   11319 |         0 |       10 |     0 |        2619 |             0 |       16 |       398 |            16 |          2840 | t           | f           | p              | r       |       26 |         0 | f          | f           | f              | f              | f              | f                   | t              | n            | f              |          0 |          562 |          1 | {postgres=arwdDxt/postgres} |            |
(1 row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...