mod*_*tos 10 postgresql bash environment-variables docker
我需要执行一个包含SQL的bash脚本,所以我使用脚本将自定义配置添加到Postgres Docker容器中,根据这里的文档:
https://github.com/docker-library/docs/tree/master/postgres#how-to-extend-this-image
但我不知道是什么EOSQL意思.以下是从上述文档中获取的脚本示例:
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
CREATE EXTENSION $MY_EXTENSION;
EOSQL
Run Code Online (Sandbox Code Playgroud)
那么,什么是EOSQL?我似乎无法找到有关此命令或关键字的更多信息.
Mat*_*att 15
EOSQL是Bash Here Document块的限制字符串.限制字符串可以是块中未显示的任何文本.它表示文本块的开头和结尾.
变量替换在这里的文档中正常工作:
#!/usr/bin/env bash
cat <<-EOF
$MY_EXTENSION
EOF
Run Code Online (Sandbox Code Playgroud)
然后使用变量set运行它:
$ MY_EXTENSION=something ./test.sh
something
Run Code Online (Sandbox Code Playgroud)
在Docker中,您需要ENV MY_EXTENSION=something在您Dockerfile或docker run -e MY_EXTENSION=something <image>您的命令行中设置环境.
| 归档时间: |
|
| 查看次数: |
5022 次 |
| 最近记录: |