如何使用docker-compose启动Postgres时设置PGOPTIONS

我想用PGOPTIONS docker-compose启动一个Postgres数据库,并使用PGOPTIONS环境variables传递一些configuration。 我docker-compose.yml如下所示:

 version: '2' services: db: image: postgres environment: - POSTGRES_USER=dbuser - POSTGRES_PASSWORD=dbpw - PGOPTIONS='-c track_activities=on -c track_counts=on -c track_io_timing=on' 

当我使用docker-compose up db启动这个服务时docker-compose up db我得到:

 db_1 | FATAL: parameter "track_io_timing" requires a Boolean value db_1 | done db_1 | server started db_1 | FATAL: parameter "track_io_timing" requires a Boolean value db_1 | psql: FATAL: parameter "track_io_timing" requires a Boolean value 

它似乎没有跟tracking_io_timing参数有关,因为当我从PGOPTIONSvariables中删除一个,我得到相同的错误,但是对于track_countsvariables。 所以我怀疑我宣布PGOPTIONS的方式有问题。

在使用您提供的Docker-Compose文件时,这里的结果是相同的。 我试图使用替代语法来定义环境variables,我不再有错误了:

 version: '2' services: db: image: postgres environment: POSTGRES_USER: dbuser POSTGRES_PASSWORD: dbpw PGOPTIONS: "-c track_activities=on -c track_counts=on -c track_io_timing=on"