我试图在运行数据库服务时运行一个简单的脚本,以便像这样创建用户和数据库:
#!/bin/bash
set -o errexit
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';
CREATE DATABASE $DB_NAME;
GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
EOSQL
"$@"
我正在使用env_file将变量传递给docker-compose中的文件,如下所示:
# #################
# DATABASE
# #################
DB_USER='john'
DB_NAME='job_database1'
DB_PASSWORD=''
POSTGRES_USER='postgres'
POSTGRES_PASSWORD=''
POSTGRES_HOST='127.0.0.1'
我得到的不是非常有用的错误,我倾向于认为变量没有通过?我也曾尝试将它们放置在其他地方,但收效甚微。这是错误:
所以当我尝试建立项目时,我得到了:
postgres_database | 2018-12-03 19:00:42.217 UTC [32] FATAL: role "'john'" does not exist
所以我想暗示在这里做什么。