运行SQL时,Bash中的“ – EOSQL”代码块是什么?
我需要执行一个包含SQL的bash脚本,所以我使用一个脚本来将自定义configuration添加到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
那么,EOSQL是什么? 我似乎无法find关于这个命令或关键字的很多信息。
EOSQL
是Bash Here文档块的限制string。 限制string可以是任何不出现在您的块中的文本。 它表示文本块的开始和结束。
在这里的文档中,variablesreplace将像正常一样工作:
#!/usr/bin/env bash cat <<-EOF $MY_EXTENSION EOF
然后用variables集运行它:
$ MY_EXTENSION=something ./test.sh something
在Docker中,您需要在您的Dockerfile
docker run -e MY_EXTENSION=something <image>
ENV MY_EXTENSION=something
,或者在您的命令行上docker run -e MY_EXTENSION=something <image>
来设置环境。
- 在运行docker contianer中设置环境variables
- 在Docker中访问Elastic Beanstalk环境属性
- 在Bashvariables赋值中找不到命令错误
- Dockerfile – 使用dynamic值定义ENVvariables
- 将docker-comp的envvariables注入到Angular4应用程序中
- Docker将一个variables传递给运行git clone的shell脚本
- ENVvariables未正确添加到容器环境
- 如何防止在docker容器中传递给ruby应用程序的ENVvariables
- 如何在Dockerfile中设置一个variablesENV以便在Docker容器中重写?