Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ venv/
.env
opentelemetry-javaagent*.jar
grafana-opentelemetry*.jar
build/

75 changes: 62 additions & 13 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,28 +1,34 @@
# hadolint global ignore=DL3059
FROM redhat/ubi9:9.5-1744101466

# renovate: datasource=github-releases depName=grafana packageName=grafana/grafana
ENV GRAFANA_VERSION=v11.6.0
ARG GRAFANA_VERSION=v11.6.0
# renovate: datasource=github-releases depName=prometheus packageName=prometheus/prometheus
ENV PROMETHEUS_VERSION=v3.2.1
ARG PROMETHEUS_VERSION=v3.2.1
# renovate: datasource=github-releases depName=tempo packageName=grafana/tempo
ENV TEMPO_VERSION=v2.7.2
ARG TEMPO_VERSION=v2.7.2
# renovate: datasource=github-releases depName=loki packageName=grafana/loki
ENV LOKI_VERSION=v3.4.3
ARG LOKI_VERSION=v3.4.3
# renovate: datasource=github-releases depName=opentelemetry-collector packageName=open-telemetry/opentelemetry-collector-releases
ENV OPENTELEMETRY_COLLECTOR_VERSION=v0.123.1
ARG OPENTELEMETRY_COLLECTOR_VERSION=v0.123.1

# hadolint global ignore=DL3059
FROM redhat/ubi9:9.5-1744101466 AS builder

RUN mkdir /otel-lgtm
WORKDIR /otel-lgtm

ARG GRAFANA_VERSION
ARG PROMETHEUS_VERSION
ARG TEMPO_VERSION
ARG LOKI_VERSION
ARG OPENTELEMETRY_COLLECTOR_VERSION

# TARGETARCH is automatically detected and set by the Docker daemon during the build process. If the build starts
# on an amd64 architecture, than the TARGETARCH will be set to `amd64`.
# More details on the variables can be found here: https://docs.docker.com/desktop/extensions-sdk/extensions/multi-arch/
ARG TARGETARCH
ENV TARGETARCH=${TARGETARCH}

RUN mkdir /otel-lgtm
WORKDIR /otel-lgtm

# hadolint ignore=DL3033
RUN yum install -y unzip jq procps dos2unix && yum clean all
RUN yum install -y unzip dos2unix jq procps

RUN bash -c 'ARCHIVE=grafana-"${GRAFANA_VERSION:1}".linux-"${TARGETARCH}".tar.gz && \
curl -sOL https://dl.grafana.com/oss/release/"${ARCHIVE}" && \
Expand All @@ -46,7 +52,8 @@ RUN bash -c 'ARCHIVE=loki-linux-"${TARGETARCH}".zip && \
curl -sOL https://github.com/grafana/loki/releases/download/"${LOKI_VERSION}"/"${ARCHIVE}" && \
mkdir loki && \
unzip "${ARCHIVE}" -d loki/ && \
rm "${ARCHIVE}"'
rm "${ARCHIVE}" && \
mv loki/loki-linux-"${TARGETARCH}" loki/loki'

RUN bash -c 'ARCHIVE=otelcol-contrib_"${OPENTELEMETRY_COLLECTOR_VERSION:1}"_linux_"${TARGETARCH}".tar.gz && \
curl -sOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/"${OPENTELEMETRY_COLLECTOR_VERSION}"/"${ARCHIVE}" && \
Expand All @@ -73,4 +80,46 @@ COPY run-all.sh .
# hadolint ignore=SC2038,DL4006
RUN find . -maxdepth 1 -type f | xargs dos2unix

FROM redhat/ubi9-micro:9.5-1744118077

RUN mkdir /otel-lgtm
WORKDIR /otel-lgtm

COPY --from=builder --chown=0:0 /usr/bin/curl /usr/bin/
COPY --from=builder --chown=0:0 /usr/bin/jq /usr/bin/
COPY --from=builder --chown=0:0 /usr/bin/grep /usr/bin/
# jq
COPY --from=builder --chown=0:0 /usr/lib64/libjq.so.1 /lib64/libjq.so.1
COPY --from=builder --chown=0:0 /usr/lib64/libonig.so.5 /lib64/libonig.so.5
# curl
COPY --from=builder --chown=0:0 /usr/lib64/libkeyutils.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libz.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libkrb5support.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libkrb5.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libk5crypto.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libgssapi_krb5.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libcom_err.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libssl.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libcrypto.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libcurl.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libnghttp2.so* /lib64/
COPY --from=builder --chown=0:0 /usr/lib64/libresolv.so* /lib64/
# grep
COPY --from=builder --chown=0:0 /usr/lib64/libpcre.so.1 /lib64/libpcre.so.1
COPY --from=builder --chown=0:0 /usr/lib64/libsigsegv.so.2 /lib64/libsigsegv.so.2

COPY --from=builder /otel-lgtm /otel-lgtm

# just for displaying the version in the startup message
ARG GRAFANA_VERSION
ARG PROMETHEUS_VERSION
ARG TEMPO_VERSION
ARG LOKI_VERSION
ARG OPENTELEMETRY_COLLECTOR_VERSION
ENV GRAFANA_VERSION=${GRAFANA_VERSION}
ENV PROMETHEUS_VERSION=${PROMETHEUS_VERSION}
ENV TEMPO_VERSION=${TEMPO_VERSION}
ENV LOKI_VERSION=${LOKI_VERSION}
ENV OPENTELEMETRY_COLLECTOR_VERSION=${OPENTELEMETRY_COLLECTOR_VERSION}

CMD ["/otel-lgtm/run-all.sh"]
2 changes: 1 addition & 1 deletion docker/run-loki.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ source ./logging.sh

mkdir -p /data/loki

run_with_logging "Loki ${LOKI_VERSION}" "${ENABLE_LOGS_LOKI:-false}" ./loki/loki-linux-"${TARGETARCH}" --config.file=./loki-config.yaml
run_with_logging "Loki ${LOKI_VERSION}" "${ENABLE_LOGS_LOKI:-false}" ./loki/loki --config.file=./loki-config.yaml
5 changes: 4 additions & 1 deletion mise.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tools]
go = "latest"
"go:github.com/grafana/oats" = "0.2.1"
java = "temurin-21.0.6+7.0.LTS"
"go:github.com/grafana/oats" = "latest"
java = "temurin-21"
lychee = "latest"
markdownlint-cli2 = "latest"

Expand Down