|
| 1 | +# This Dockerfile was generated from templates/IronbankDockerfile.erb |
| 2 | + |
| 3 | +ARG BASE_REGISTRY=registry1.dso.mil |
| 4 | +ARG BASE_IMAGE=ironbank/redhat/ubi/ubi9 |
| 5 | +ARG BASE_TAG=9.6 |
| 6 | +ARG LOGSTASH_VERSION=<%= elastic_version %> |
| 7 | +ARG GOLANG_VERSION=1.21.8 |
| 8 | + |
| 9 | +# stage 1: build env2yaml |
| 10 | +FROM ${BASE_REGISTRY}/google/golang/ubi9/golang-1.21:${GOLANG_VERSION} AS env2yaml |
| 11 | + |
| 12 | +ENV GOPATH=/go |
| 13 | + |
| 14 | +COPY scripts/go /go |
| 15 | + |
| 16 | +USER root |
| 17 | + |
| 18 | +RUN dnf-3 -y upgrade && dnf-3 install -y git && \ |
| 19 | + cd /go/src/env2yaml && \ |
| 20 | + go build |
| 21 | + |
| 22 | +# Final stage |
| 23 | +FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} |
| 24 | + |
| 25 | +ARG LOGSTASH_VERSION |
| 26 | + |
| 27 | +ENV ELASTIC_CONTAINER true |
| 28 | +ENV PATH=/usr/share/logstash/bin:$PATH |
| 29 | + |
| 30 | +WORKDIR /usr/share |
| 31 | + |
| 32 | +COPY --from=env2yaml /go/src/env2yaml/env2yaml /usr/local/bin/env2yaml |
| 33 | +COPY scripts/config/* config/ |
| 34 | +COPY scripts/pipeline/default.conf pipeline/logstash.conf |
| 35 | +COPY scripts/bin/docker-entrypoint /usr/local/bin/ |
| 36 | +COPY logstash-${LOGSTASH_VERSION}-linux-x86_64.tar.gz /tmp/logstash.tar.gz |
| 37 | + |
| 38 | +RUN dnf -y upgrade && \ |
| 39 | + dnf install -y procps findutils tar gzip which shadow-utils && \ |
| 40 | + dnf clean all && \ |
| 41 | + groupadd --gid 1000 logstash && \ |
| 42 | + adduser --uid 1000 --gid 1000 --home-dir /usr/share/logstash --no-create-home logstash && \ |
| 43 | + tar -zxf /tmp/logstash.tar.gz -C /usr/share/ && \ |
| 44 | + mv /usr/share/logstash-${LOGSTASH_VERSION} /usr/share/logstash && \ |
| 45 | + chown -R 1000:0 /usr/share/logstash && \ |
| 46 | + chown --recursive logstash:logstash /usr/share/logstash/ && \ |
| 47 | + chown -R logstash:root /usr/share/logstash config/ pipeline/ && \ |
| 48 | + chmod -R g=u /usr/share/logstash && \ |
| 49 | + mv config/* /usr/share/logstash/config && \ |
| 50 | + mv pipeline /usr/share/logstash/pipeline && \ |
| 51 | + mkdir /licenses/ && \ |
| 52 | + mv /usr/share/logstash/NOTICE.TXT /licenses/NOTICE.TXT && \ |
| 53 | + mv /usr/share/logstash/LICENSE.txt /licenses/LICENSE.txt && \ |
| 54 | + ln -s /usr/share/logstash /opt/logstash && \ |
| 55 | + chmod 0755 /usr/local/bin/docker-entrypoint && \ |
| 56 | + rmdir config && \ |
| 57 | + rm /tmp/logstash.tar.gz |
| 58 | + |
| 59 | +WORKDIR /usr/share/logstash |
| 60 | + |
| 61 | +USER 1000 |
| 62 | + |
| 63 | +EXPOSE 9600 5044 |
| 64 | + |
| 65 | +ENTRYPOINT ["/usr/local/bin/docker-entrypoint"] |
0 commit comments