【发布时间】:2020-11-09 13:09:11
【问题描述】:
当我使用 elasticsearch 官方 docker 镜像时,ELASTIC_PASSWORD 环境变量运行良好
docker run -dti -e ELASTIC_PASSWORD=my_own_password -e discovery.type=single-node elasticsearch:7.8.0
但是,当我构建自己的自定义 docker 映像时,ELASTIC_PASSWORD 不起作用,请您帮我解决这个问题
这是我的 Docker 文件
FROM ubuntu:18.04
ENV \
REFRESHED_AT=2020-06-20
###############################################################################
# INSTALLATION
###############################################################################
### install prerequisites (cURL, gosu, tzdata, JDK for Logstash)
RUN set -x \
&& apt update -qq \
&& apt install -qqy --no-install-recommends ca-certificates curl gosu tzdata openjdk-11-jdk-headless \
&& apt clean \
&& rm -rf /var/lib/apt/lists/* \
&& gosu nobody true \
&& set +x
### set current package version
ARG ELK_VERSION=7.8.0
### install Elasticsearch
# predefine env vars, as you can't define an env var that references another one in the same block
ENV \
ES_VERSION=${ELK_VERSION} \
ES_HOME=/opt/elasticsearch
ENV \
ES_PACKAGE=elasticsearch-${ES_VERSION}-linux-x86_64.tar.gz \
ES_GID=991 \
ES_UID=991 \
ES_PATH_CONF=/etc/elasticsearch \
ES_PATH_BACKUP=/var/backups \
KIBANA_VERSION=${ELK_VERSION}
RUN DEBIAN_FRONTEND=noninteractive \
&& mkdir ${ES_HOME} \
&& curl -O https://artifacts.elastic.co/downloads/elasticsearch/${ES_PACKAGE} \
&& tar xzf ${ES_PACKAGE} -C ${ES_HOME} --strip-components=1 \
&& rm -f ${ES_PACKAGE} \
&& groupadd -r elasticsearch -g ${ES_GID} \
&& useradd -r -s /usr/sbin/nologin -M -c "Elasticsearch service user" -u ${ES_UID} -g elasticsearch elasticsearch \
&& mkdir -p /var/log/elasticsearch ${ES_PATH_CONF} ${ES_PATH_CONF}/scripts /var/lib/elasticsearch ${ES_PATH_BACKUP}
【问题讨论】:
-
为什么不使用或扩展官方镜像?
-
@Adiii 想要构建 docker 镜像 logstash、elasticsearch 和 kibana 单个 docker 镜像。这就是我尝试构建自定义图像的原因
-
所以扩展弹性搜索图像并安装其余两个
-
不能这样做,弹性基础映像对我不起作用
-
Docker 旨在为每个容器执行一个进程。您应该使用 docker-compose 并为每个应用程序定义一个容器。当您修改官方图像时,您应该发布您的代码并描述究竟是什么不适合您。
标签: docker elasticsearch elastic-stack elk