<p>Just doing a container start on this official logstash docker container does make logstash properly run, given the right config.</p>
<p>It does not have an entrypoint or cmd, or anything of the sort though.  I am also not issuing one on the start command.  So, how is logstash actually getting executed in this case?</p>
<p>I need to know because I need to edit the command for other reasons.  We're working on running it in kubernetes but are just testing with local docker for now.</p>
<p><a href="https://github.com/elastic/logstash/blob/7.15/Dockerfile" rel="nofollow noreferrer">https://github.com/elastic/logstash/blob/7.15/Dockerfile</a></p>
<p><strong>Copied for easy reference:</strong></p>
<pre><code>FROM ubuntu:bionic

RUN apt-get update &amp;&amp; \
    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 &amp;&amp; \
    apt-get clean

WORKDIR /root

RUN adduser --disabled-password --gecos &quot;&quot; --home /home/logstash logstash &amp;&amp; \
    mkdir -p /usr/local/share/ruby-build &amp;&amp; \
    mkdir -p /opt/logstash &amp;&amp; \
    mkdir -p /opt/logstash/data &amp;&amp; \
    mkdir -p /mnt/host &amp;&amp; \
    chown logstash:logstash /opt/logstash

USER logstash
WORKDIR /home/logstash

# used by the purge policy
LABEL retention=&quot;keep&quot;

# 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 &amp;&amp; exit_code=0 &amp;&amp; break || exit_code=$? &amp;&amp; echo &quot;gradlew error: retry $iter in 10s&quot; &amp;&amp; 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 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 &amp;&amp; \
    mkdir -p build &amp;&amp; \
    chown -R logstash:logstash /opt/logstash
USER logstash
WORKDIR /opt/logstash

LABEL retention=&quot;prune&quot;
</code></pre>

John Humphreys
<p>If you look at the final layer on the image <a href="https://hub.docker.com/layers/logstash/library/logstash/7.14.1/images/sha256-b1f3308db8149e891a0dee29a2608bdcb9f45a4bd3b6ff7bf5b4ee0c0b2c2222?context=explore" rel="nofollow noreferrer">here</a>, it looks like there is an <code>ENTRYPOINT [&quot;/usr/local/bin/docker-entrypoint&quot;]</code>. The Dockerfile you've linked might not be the one used to build the image.</p>
