Postgres

This guide covers configuring continuous integration pipelines for projects that have a Postgres dependency. If you’re new to Drone please read our Tutorial and build configuration guides first.

Basic Example

In the below example we demonstrate a pipeline that launches a Postgres service container. The server will be available at localhost:5432

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
kind: pipeline
type: kubernetes
name: default

steps:
- name: test
  image: postgres:9-alpine
  commands:
  - psql -U postgres -d test

services:
- name: database
  image: postgres:9-alpine
  environment:
    POSTGRES_USER: postgres
    POSTGRES_DB: test

Database Settings

The official Postgres image provides environment variables used at startup to create the default username, password, database and more. Please see the official image documentation for more details.

1
2
3
4
5
6
services:
- name: database
  image: postgres
  environment:
    POSTGRES_USER: postgres
    POSTGRES_DB: test

Common Problems

If you are unable to connect to the Postgres container please make sure you are giving Postgres adequate time to initialize and begin accepting connections.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
kind: pipeline
type: kubernetes
name: default

steps:
- name: test
  image: postgres
  commands:
  - sleep 15
  - psql -U postgres -d test