|
@@ -44,7 +44,11 @@ RUN chmod 0555 /bin/tini
|
|
|
FROM ${base_image} AS builder
|
|
|
|
|
|
# Install required packages to extract the Elasticsearch distribution
|
|
|
+<% if (docker_base == 'default' || docker_base == 'cloud') { %>
|
|
|
+RUN <%= retry.loop(package_manager, "${package_manager} update && DEBIAN_FRONTEND=noninteractive ${package_manager} install -y curl ca-certificates-java") %>
|
|
|
+<% } else { %>
|
|
|
RUN <%= retry.loop(package_manager, "${package_manager} install -y findutils tar gzip") %>
|
|
|
+<% } %>
|
|
|
|
|
|
# `tini` is a tiny but valid init for containers. This is used to cleanly
|
|
|
# control how ES and any child processes are shut down.
|
|
@@ -152,6 +156,18 @@ RUN ${package_manager} update --setopt=tsflags=nodocs -y && \\
|
|
|
nc shadow-utils zip findutils unzip procps-ng && \\
|
|
|
${package_manager} clean all
|
|
|
|
|
|
+<% } else if (docker_base == "default" || docker_base == "cloud") { %>
|
|
|
+
|
|
|
+RUN <%= retry.loop(
|
|
|
+ package_manager,
|
|
|
+ "export DEBIAN_FRONTEND=noninteractive && \n" +
|
|
|
+ "${package_manager} update && \n" +
|
|
|
+ "${package_manager} upgrade -y && \n" +
|
|
|
+ "${package_manager} install -y --no-install-recommends curl netcat zip unzip vim-tiny && \n" +
|
|
|
+ "${package_manager} clean && \n" +
|
|
|
+ "rm -rf /var/lib/apt/lists/*"
|
|
|
+ ) %>
|
|
|
+
|
|
|
<% } else { %>
|
|
|
|
|
|
RUN <%= retry.loop(
|
|
@@ -164,9 +180,17 @@ RUN <%= retry.loop(
|
|
|
|
|
|
<% } %>
|
|
|
|
|
|
+
|
|
|
+<% if (docker_base == "default" || docker_base == "cloud") { %>
|
|
|
+RUN groupadd -g 1000 elasticsearch && \\
|
|
|
+ adduser --uid 1000 --gid 1000 --home /usr/share/elasticsearch elasticsearch && \\
|
|
|
+ adduser elasticsearch root && \\
|
|
|
+ chown -R 0:0 /usr/share/elasticsearch
|
|
|
+<% } else { %>
|
|
|
RUN groupadd -g 1000 elasticsearch && \\
|
|
|
adduser -u 1000 -g 1000 -G 0 -d /usr/share/elasticsearch elasticsearch && \\
|
|
|
chown -R 0:0 /usr/share/elasticsearch
|
|
|
+<% } %>
|
|
|
|
|
|
ENV ELASTIC_CONTAINER true
|
|
|
|
|
@@ -175,6 +199,10 @@ COPY --from=builder --chown=0:0 /usr/share/elasticsearch /usr/share/elasticsearc
|
|
|
|
|
|
COPY --from=builder --chown=0:0 /bin/tini /bin/tini
|
|
|
|
|
|
+<% if (docker_base == 'default' || docker_base == 'cloud') { %>
|
|
|
+COPY --from=builder --chown=0:0 /etc/ssl/certs/java/cacerts /etc/ssl/certs/java/cacerts
|
|
|
+<% } %>
|
|
|
+
|
|
|
<% if (docker_base == 'cloud') { %>
|
|
|
COPY --from=builder --chown=0:0 /opt /opt
|
|
|
<% } %>
|
|
@@ -197,7 +225,8 @@ COPY ${bin_dir}/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
|
RUN chmod g=u /etc/passwd && \\
|
|
|
chmod 0555 /usr/local/bin/docker-entrypoint.sh && \\
|
|
|
find / -xdev -perm -4000 -exec chmod ug-s {} + && \\
|
|
|
- ln -sf /etc/pki/ca-trust/extracted/java/cacerts /usr/share/elasticsearch/jdk/lib/security/cacerts && \\
|
|
|
+ ln -sf <%= docker_base == 'default' || docker_base == 'cloud' ? '/etc/ssl/certs/java/cacerts' : '/etc/pki/ca-trust/extracted/java/cacerts' %> \\
|
|
|
+ /usr/share/elasticsearch/jdk/lib/security/cacerts && \\
|
|
|
chmod 0775 /usr/share/elasticsearch && \\
|
|
|
chown elasticsearch bin config config/jvm.options.d data logs plugins
|
|
|
|
|
@@ -247,7 +276,7 @@ ENTRYPOINT ["/bin/tini", "--"]
|
|
|
CMD ["/app/elasticsearch.sh"]
|
|
|
# Generate a stub command that will be overwritten at runtime
|
|
|
RUN mkdir /app && \\
|
|
|
- echo -e '#!/bin/sh\\nexec /usr/local/bin/docker-entrypoint.sh eswrapper' > /app/elasticsearch.sh && \\
|
|
|
+ echo '#!/bin/bash\\nexec /usr/local/bin/docker-entrypoint.sh eswrapper' > /app/elasticsearch.sh && \\
|
|
|
chmod 0555 /app/elasticsearch.sh
|
|
|
|
|
|
<% } else { %>
|