docker/templates/IronbankDockerfile.erb (49 lines of code) (raw):

# This Dockerfile was generated from templates/IronbankDockerfile.erb ARG BASE_REGISTRY=registry1.dso.mil ARG BASE_IMAGE=ironbank/redhat/ubi/ubi9 ARG BASE_TAG=9.5 ARG LOGSTASH_VERSION=<%= elastic_version %> ARG GOLANG_VERSION=1.21.8 # stage 1: build env2yaml FROM ${BASE_REGISTRY}/google/golang/ubi9/golang-1.21:${GOLANG_VERSION} AS env2yaml ENV GOPATH=/go COPY scripts/go /go USER root RUN dnf-3 -y upgrade && dnf-3 install -y git && \ cd /go/src/env2yaml && \ go build # Final stage FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} ARG LOGSTASH_VERSION ENV ELASTIC_CONTAINER true ENV PATH=/usr/share/logstash/bin:$PATH WORKDIR /usr/share COPY --from=env2yaml /go/src/env2yaml/env2yaml /usr/local/bin/env2yaml COPY scripts/config/* config/ COPY scripts/pipeline/default.conf pipeline/logstash.conf COPY scripts/bin/docker-entrypoint /usr/local/bin/ COPY logstash-${LOGSTASH_VERSION}-linux-x86_64.tar.gz /tmp/logstash.tar.gz RUN dnf -y upgrade && \ dnf install -y procps findutils tar gzip which shadow-utils && \ dnf clean all && \ groupadd --gid 1000 logstash && \ adduser --uid 1000 --gid 1000 --home-dir /usr/share/logstash --no-create-home logstash && \ tar -zxf /tmp/logstash.tar.gz -C /usr/share/ && \ mv /usr/share/logstash-${LOGSTASH_VERSION} /usr/share/logstash && \ chown -R 1000:0 /usr/share/logstash && \ chown --recursive logstash:logstash /usr/share/logstash/ && \ chown -R logstash:root /usr/share/logstash config/ pipeline/ && \ chmod -R g=u /usr/share/logstash && \ mv config/* /usr/share/logstash/config && \ mv pipeline /usr/share/logstash/pipeline && \ mkdir /licenses/ && \ mv /usr/share/logstash/NOTICE.TXT /licenses/NOTICE.TXT && \ mv /usr/share/logstash/LICENSE.txt /licenses/LICENSE.txt && \ ln -s /usr/share/logstash /opt/logstash && \ chmod 0755 /usr/local/bin/docker-entrypoint && \ rmdir config && \ rm /tmp/logstash.tar.gz WORKDIR /usr/share/logstash USER 1000 EXPOSE 9600 5044 ENTRYPOINT ["/usr/local/bin/docker-entrypoint"]