私はSQLを含むbashスクリプトを実行する必要があるので、私はここにドキュメントによると、Postgresのドッカーコンテナにカスタム構成を追加するためのスクリプトを使用しています:SQLの実行時にBashの `<< -EOSQL`コードブロックとは何ですか?
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とは何ですか?私はこのコマンドやキーワードに関する多くの情報を見つけることができません。
コードは問題ありません。このスクリプトを実行する前に 'MY_EXTENSION'をエクスポートしたことはありますか? – chepner
'EOSQL'はキーワードではありません。これは、ここのドキュメントの境界をマークするために使用される任意の文字列(End Of SQL)です。 – chepner
ああ、環境変数は正常に動作しています。私は別のエラーが発生していました。私は、環境変数が読み込まれなかったことが原因だと考えました。私は、私の誤解の原因となったEOSQLブロックとBash Here Documentに関する質問を更新しました。 – modulitos