Sam*_*817 8 postgresql environment-variables docker
我在 Dockerfile 中设置环境变量,我想在 .sql 文件中引用它。该文件在/docker-entrypoint-initdb.d因为initdb将运行它。
如何传递环境变量?(例如SELECT * FROM $myEnvironmentVariableHere;)
有几种方法可以做到这一点,但最简单的可能是使用带有 HEREDOC 的简单 shell 脚本:
这是脚本,在scripts/test.sh中调用
#!/bin/bash
psql << EOF
SELECT * FROM $MYVAR LIMIT 1;
EOF
Run Code Online (Sandbox Code Playgroud)
运行方法如下:
#!/bin/bash
psql << EOF
SELECT * FROM $MYVAR LIMIT 1;
EOF
Run Code Online (Sandbox Code Playgroud)
在各种启动消息中,您将看到以下几行:
/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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3917 次 |
| 最近记录: |