2016-07-29 29 views
0

Ich versuche, GitLab CI einzurichten, und ich habe einige Integrationstests, die gegen Elasticsearch ausgeführt werden. Ich möchte die offizielle Docker Bild installieren Elasticsearch verwenden, so:Ändern eines Dienstes in GitLab CI

services: 
    - elasticsearch:2.2.2 

Aber ich will die Mapper-Anhänge Plugin. Ich hatte kein Glück, einen Befehl in der before_script Sektion hinzuzufügen, um das Mapper-Attachment-Plugin zu installieren, da die Elasticsearch-Dateien nicht in der Umgebung zu liegen scheinen, in der der before_script-Abschnitt ausgeführt wird. Wie kann ich das ElasticSearch-Bild ändern, das in den Runner installiert wurde?

Antwort

0

Sie sollten einen benutzerdefinierten ElasticSearch-Container erstellen.

Sie könnten die folgende Dockerfile anpassen:

FROM elasticsearch:2.3 
MAINTAINER Your Name <[email protected]> 

RUN /usr/share/elasticsearch/bin/plugin install analysis-phonetic 

Sie dieses Bild auf Docker Hub finden.

Hier sind detaillierte Schritte:

  • Register bei https://hub.docker.com und verknüpfen Sie Github-Konto mit ihm
  • Erstellen Sie einen neuen Repo bei Github, z.B. "elasticsearch-docker"
  • ein Dockerfile erstellen, die FROM elasticsearch erbt und installiert Ihre Plugins (see this example)
  • Benutzer Automated build at Dockerhub Form dieses GitHub Repo erstellen (in meinem Fall: https://hub.docker.com/r/tmaier/elasticsearch/)
  • Konfigurieren Sie die Build-Einstellungen bei Docker Hub
    • I zwei Tags hinzugefügt. Ein "neustes" und eins passend zu der von mir verwendeten Elasticsearch-Version.
    • I verknüpft auch die Elasticsearch Repository, so dass Mine wieder aufgebaut wird, wenn ein neuer gibt es Elasticsearch Release
  • Sehen Sie, dass der Container
  • Over bei Gitlab CI erfolgreich von Docker Hub gebaut wird, ändern Sie den Dienst zeigen Sie auf Ihr neues Docker-Bild. In meinem Beispiel würde ich verwenden tmaier/elasticsearch:latest
  • Siehe Ihre Integrationstests