Using PostgreSQL

原文:https://docs.gitlab.com/ee/ci/services/postgres.html

Using PostgreSQL

由于许多应用程序都依赖 PostgreSQL 作为其数据库,因此最终需要它才能运行测试. 下面将指导您如何使用 GitLab Runner 的 Docker 和 Shell 执行程序执行此操作.

Use PostgreSQL with the Docker executor

如果您将GitLab Runner与 Docker 执行程序一起使用,则基本上已经完成了所有设置.

首先,在您的.gitlab-ci.yml添加:

  1. services:
  2. - postgres:12.2-alpine
  3. variables:
  4. POSTGRES_DB: nice_marmot
  5. POSTGRES_USER: runner
  6. POSTGRES_PASSWORD: ""
  7. POSTGRES_HOST_AUTH_METHOD: trust

注意:不能在 GitLab UI 中设置POSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_HOST_AUTH_METHOD变量. 要设置它们,请将它们分配给UI 中的变量,然后将该变量分配给.gitlab-ci.ymlPOSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_HOST_AUTH_METHOD变量.

然后将您的应用程序配置为使用数据库,例如:

  1. Host: postgres
  2. User: runner
  3. Password: ''
  4. Database: nice_marmot

如果您想知道为什么我们对Host使用postgres ,请阅读如何将服务链接到作业的更多信息 .

您还可以使用Docker Hub上可用的任何其他 Docker 映像. 例如,要使用 PostgreSQL 9.3,服务将变为postgres:9.3 .

postgres图像可以接受一些环境变量. 有关更多详细信息,请参阅Docker Hub上的文档.

Use PostgreSQL with the Shell executor

您还可以在手动配置的服务器上使用 PostgreSQL,这些服务器将 GitLab Runner 与 Shell 执行程序一起使用.

首先安装 PostgreSQL 服务器:

  1. sudo apt-get install -y postgresql postgresql-client libpq-dev

下一步是创建用户,因此登录 PostgreSQL:

  1. sudo -u postgres psql -d template1

然后创建一个将由您的应用程序使用的用户(在我们的示例中为runner ). 将以下命令中的$password更改$password真实的强密码.

*注意:不要输入template1=# ,这是 PostgreSQL 提示的一部分.*

  1. template1=# CREATE USER runner WITH PASSWORD '$password' CREATEDB;

*注意:请注意,我们创建的用户具有创建数据库的特权( CREATEDB ). 在以下步骤中,我们将为该用户显式创建一个数据库,但是如果在您的测试框架中有删除和创建数据库的工具,则具有该特权将很有用.*

创建数据库,并授予其上的所有特权用户runner

  1. template1=# CREATE DATABASE nice_marmot OWNER runner;

如果一切顺利,您现在可以退出数据库会话:

  1. template1=# \q

现在,尝试连接到与用户新创建的数据库runner检查一切就绪.

  1. psql -U runner -h localhost -d nice_marmot -W

*注意:我们明确告诉psql连接到 localhost 以便使用 md5 身份验证. 如果您省略此步骤,则将被拒绝访问.*

最后,将您的应用程序配置为使用数据库,例如:

  1. Host: localhost
  2. User: runner
  3. Password: $password
  4. Database: nice_marmot

Example project

为了方便起见,我们使用公共可共享的运行程序在GitLab.com上运行了一个示例 PostgreSQL 项目 .

想要破解吗? 只需对其进行分叉,提交并推送您的更改. 稍后,公共跑步者将选择更改并开始工作.