簡體   English   中英

在大廳容器上運行 Elasticsearch 8

[英]Running Elasticsearch 8 on concourse container

我正在使用 Concourse 構建我的 java package。

為了運行 package 的集成測試,我需要一個 elasticsearch 的本地實例。

在 ES 版本 8 之前,我所做的只是在 Docker 圖像中安裝 ES,然后將其用作 Concourse 任務的圖像資源,以在以下位置構建我的 java package:

FROM openjdk:11-jdk-slim-stretch
RUN apt-get update && apt-get install -y procps
ADD "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-amd64.deb" /es.deb
RUN dpkg -i es.deb
RUN rm es.deb

稍后我會在構建之前啟動它: /etc/init.d/elasticsearch start

將 ES 升級到版本 8 時出現問題。那個init.d文件似乎不再存在。 我發現的一些建議建議將 ES 作為容器運行,因此在 concourse 容器內運行 ES 容器對於我的用例來說似乎有點太復雜了。

如果你在項目中遇到過類似的問題,你是如何解決的?

這就是我要做的:

  1. 官方 Elastic docker 圖像構建您的 docker 圖像,例如:
FROM elasticsearch:8.2.2
USER root
RUN apt update && apt install -y sudo
  1. 在您的任務中啟動 Elastic。 假設圖像在 docker 上被推送到 oozie oozie/elastic 。那么下面的管道作業應該會成功:
jobs:
  - name: run-elastic
    plan:
    - task: integtest
      config:
        platform: linux
        image_resource:
          type: docker-image
          source:
            repository: oozie/elastic
        run:
          path: /bin/bash
          args:
          - -c
          - |
            (sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch -Expack.security.enabled=false -E discovery.type=single-node > elastic.log) &
            while ! curl http://localhost:9200; do sleep 10; done

它應該導致以下任務運行:

管道運行彈性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM