我正在针对种子postgres数据库运行Angular Node npm测试。这适用于一个环境,但不适用于另一个环境。
我已经将图像导出到一个环境并将它们从一个环境移动到另一个环境,结果表明这与环境有所不同,而不是泊坞窗图像。我也将所有内容都检入git,并完成了图像的清晰构建。
pg = $(docker run -d postgres-seeded)
docker run -it --net = container:$ pg nodeapp npm test
这里是我所看到的工作/不工作的矩阵
machine | npm test result
mac os X - docker 1.10.3 | success
|
webstorm local to docker to post-|
gres-seeded - mac os X docker | success
|
amazon ami on AWS docker 1.9.1 | error below
amazon ami on AWS docker 1.10.3 | error below
ubuntu 14.04 on AWS docker 1.10.3| success on one instance, error below
失败时的错误无法连接到postgres
4) AccessPermissionsRoutes "before all" hook:
Error: The genericPool is not initialized.
at Pool_PG.Pool.acquire (/usr/src/app/node_modules/knex/lib/pool.js:57:14)
at /usr/src/app/node_modules/knex/lib/client.js:33:10
at tryCatcher (/usr/src/app/node_modules/knex/node_modules/bluebird/js/main/util.js:26:23)
at Promise._resolveFromResolver (/usr/src/app/node_modules/knex/node_modules/bluebird/js/main/promise.js:480:31)
at new Promise (/usr/src/app/node_modules/knex/node_modules/bluebird/js/main/promise.js:70:37)
at Client_PG.Client.acquireConnection (/usr/src/app/node_modules/knex/lib/client.js:31:10)
答案 0 :(得分:1)
我能够解决这个问题。这与Postgres在播种后处于不稳定状态有关。它不会一直发生,因此不确定它何时发生或不发生。
因此解决方案是每次都使用一个新的postgres图像,并使用卷容器播种数据。
seeded=$(docker run --name seeded_1-v /var/lib/postgresql/data -d busybox true)
pg=$(docker run --volumes-from $seeded -d postgres)
docker run -e DATABASE_URL=postgres://postgres@localhost:5432 --net=container:$pg seeding-image
其中seeding-image是定制postgres数据库的自定义docker镜像。
答案 1 :(得分:0)
重新创建并重新设置Postgres容器,然后重试。最有可能解决您在代码中看到的连接问题。