[英]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 容器對於我的用例來說似乎有點太復雜了。
如果你在項目中遇到過類似的問題,你是如何解決的?
這就是我要做的:
FROM elasticsearch:8.2.2
USER root
RUN apt update && apt install -y sudo
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.