Example Elasicsearch Configuration

This guide covers configuring continuous integration pipelines for projects that have a Elasticsearch 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 Elasticsearch service container. The elastic server will be available at database:9200, where the hostname matches the service container name.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
---
kind: pipeline
name: default

platform:
  os: linux
  arch: amd64

steps:
- name: test
  image: alpine:3.8
  commands:
  - apk add curl
  - sleep 45
  - curl http://database:9200

services:
- name: database
  image: elasticsearch:5-alpine

...

Common Problems

Initialization

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

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

steps:
- name: test
  image: alpine:3.8
  commands:
  - apk add curl
  - sleep 45
  - curl http://database:9200

Incorrect Hostname

You cannot use 127.0.0.1 or localhost to connect with the database. If you are unable to connect to the database please verify you are using the correct hostname, corresponding with the name of the container.

Bad:

steps:
- name: test
  image: alpine:3.8
  commands:
  - apk add curl
  - sleep 45
  - curl http://localhost:9200

services:
- name: database
  image: elasticsearch:5-alpine

Good:

steps:
- name: test
  image: alpine:3.8
  commands:
  - apk add curl
  - sleep 45
  - curl http://database:9200

services:
- name: database
  image: elasticsearch:5-alpine