CircleCI 2.0中的多个Posgres数据库

时间:2018-06-20 20:35:52

标签: postgresql circleci circleci-2.0

如何让我的Postgres图像创建多个数据库?例如,我想做这样的事情:

- image: circleci/postgres:9.6.7-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: db_test
      POSTGRES_DB: db_special

有没有办法做到这一点?如果没有,我该如何创建与第一个角色相同的第二个数据库?

1 个答案:

答案 0 :(得分:2)

免责声明:CircleCI的开发者倡导者

我为您提供了三种选择。

  1. 自己扩展PostgreSQL Docker映像,并默认创建您需要的其他数据库。
  2. 通过您的应用程序(应为一条SQL行)或使用PostgreSQL CLI(您需要在容器中安装)动态创建其他数据库。
  3. 同时使用两个或多个PostgreSQL容器,每个数据库一个。然后,您还需要更改其中之一的默认主机名。第一个位于localhost,第二个位于您设置的名称。

以下是#3的示例:

- image: circleci/my-main-image:latest
- image: circleci/postgres:9.6.7-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: db_test
- image: circleci/postgres:9.6.7-alpine
    name: pg2
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: db_special