mirror of
https://github.com/elastic/logstash.git
synced 2025-04-19 20:27:23 -04:00
This commit is a backport of three PRs #13182 #13183 #13184 Mainly it switched the Gradle to version 7 and applies fixes to make it run.
64 lines
No EOL
2.4 KiB
Docker
64 lines
No EOL
2.4 KiB
Docker
FROM ubuntu:bionic
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y zlib1g-dev build-essential vim rake git curl libssl-dev libreadline-dev libyaml-dev \
|
|
libxml2-dev libxslt-dev openjdk-11-jdk-headless curl iputils-ping netcat && \
|
|
apt-get clean
|
|
|
|
WORKDIR /root
|
|
|
|
RUN adduser --disabled-password --gecos "" --home /home/logstash logstash && \
|
|
mkdir -p /usr/local/share/ruby-build && \
|
|
mkdir -p /opt/logstash && \
|
|
mkdir -p /opt/logstash/data && \
|
|
mkdir -p /mnt/host && \
|
|
chown logstash:logstash /opt/logstash
|
|
|
|
USER logstash
|
|
WORKDIR /home/logstash
|
|
|
|
# used by the purge policy
|
|
LABEL retention="keep"
|
|
|
|
# Setup gradle wrapper. When running any `gradle` command, a `settings.gradle` is expected (and will soon be required).
|
|
# This section adds the gradle wrapper, `settings.gradle` and sets the permissions (setting the user to root for `chown`
|
|
# and working directory to allow this and then reverts back to the previous working directory and user.
|
|
COPY --chown=logstash:logstash gradlew /opt/logstash/gradlew
|
|
COPY --chown=logstash:logstash gradle/wrapper /opt/logstash/gradle/wrapper
|
|
COPY --chown=logstash:logstash settings.gradle /opt/logstash/settings.gradle
|
|
WORKDIR /opt/logstash
|
|
RUN for iter in `seq 1 10`; do ./gradlew wrapper --warning-mode all && exit_code=0 && break || exit_code=$? && echo "gradlew error: retry $iter in 10s" && sleep 10; done; exit $exit_code
|
|
WORKDIR /home/logstash
|
|
|
|
ADD versions.yml /opt/logstash/versions.yml
|
|
ADD LICENSE.txt /opt/logstash/LICENSE.txt
|
|
ADD NOTICE.TXT /opt/logstash/NOTICE.TXT
|
|
ADD licenses /opt/logstash/licenses
|
|
ADD CONTRIBUTORS /opt/logstash/CONTRIBUTORS
|
|
ADD Gemfile.template Gemfile.jruby-2.5.lock.* /opt/logstash/
|
|
ADD Rakefile /opt/logstash/Rakefile
|
|
ADD build.gradle /opt/logstash/build.gradle
|
|
ADD rubyUtils.gradle /opt/logstash/rubyUtils.gradle
|
|
ADD rakelib /opt/logstash/rakelib
|
|
ADD config /opt/logstash/config
|
|
ADD spec /opt/logstash/spec
|
|
ADD qa /opt/logstash/qa
|
|
ADD lib /opt/logstash/lib
|
|
ADD pkg /opt/logstash/pkg
|
|
ADD buildSrc /opt/logstash/buildSrc
|
|
ADD tools /opt/logstash/tools
|
|
ADD logstash-core /opt/logstash/logstash-core
|
|
ADD logstash-core-plugin-api /opt/logstash/logstash-core-plugin-api
|
|
ADD bin /opt/logstash/bin
|
|
ADD modules /opt/logstash/modules
|
|
ADD x-pack /opt/logstash/x-pack
|
|
ADD ci /opt/logstash/ci
|
|
|
|
USER root
|
|
RUN rm -rf build && \
|
|
mkdir -p build && \
|
|
chown -R logstash:logstash /opt/logstash
|
|
USER logstash
|
|
WORKDIR /opt/logstash
|
|
|
|
LABEL retention="prune" |