-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathDockerfile.operator
62 lines (54 loc) · 4.21 KB
/
Dockerfile.operator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_8_golang_1.22@sha256:414352c89e06f25f79b4927328504edcdbfe676cd9596b44afff2eb4117c17e0 as builder
WORKDIR /opt/app-root/src
USER root
COPY .git .git
COPY opentelemetry-operator opentelemetry-operator
# this directory is checked by ecosystem-cert-preflight-checks task in Konflux
COPY opentelemetry-operator/LICENSE /licenses/
WORKDIR /opt/app-root/src/opentelemetry-operator
RUN exportOrFail() { echo $1; if [[ $1 == *= ]]; then echo "Error: empty variable assignment"; exit 1; else export "$1"; fi } && \
exportOrFail VERSION_PKG="github.com/open-telemetry/opentelemetry-operator/internal/version" && \
exportOrFail BUILD_DATE=`date -u +'%Y-%m-%dT%H:%M:%SZ'` && \
exportOrFail OPERATOR_VERSION=`git describe --tags --abbrev=0 | sed 's/^v//'` && \
exportOrFail OTELCOL_VERSION=`grep -v '\#' versions.txt | grep opentelemetry-collector | awk -F= '{print $2}'` && \
exportOrFail TARGETALLOCATOR_VERSION=`grep -v '\#' versions.txt | grep targetallocator | awk -F= '{print $2}'` && \
exportOrFail OPERATOR_OPAMP_BRIDGE_VERSION=`grep -v '\#' versions.txt | grep operator-opamp-bridge | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_JAVA_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-java | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_NODEJS_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-nodejs | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_PYTHON_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-python | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_DOTNET_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-dotnet | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_GO_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-go | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-apache-httpd | awk -F= '{print $2}'` && \
exportOrFail AUTO_INSTRUMENTATION_NGINX_VERSION=`grep -v '\#' versions.txt | grep autoinstrumentation-nginx | awk -F= '{print $2}'` && \
CGO_ENABLED=1 GOEXPERIMENT=strictfipsruntime go build -mod=mod -tags strictfipsruntime -o ./opentelemetry-operator -trimpath -ldflags "-s -w \
-X ${VERSION_PKG}.version=${OPERATOR_VERSION} \
-X ${VERSION_PKG}.buildDate=${BUILD_DATE} \
-X ${VERSION_PKG}.otelCol=${OTELCOL_VERSION} \
-X ${VERSION_PKG}.targetAllocator=${TARGETALLOCATOR_VERSION} \
-X ${VERSION_PKG}.operatorOpAMPBridge=${OPERATOR_OPAMP_BRIDGE_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationJava=${AUTO_INSTRUMENTATION_JAVA_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationNodeJS=${AUTO_INSTRUMENTATION_NODEJS_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationPython=${AUTO_INSTRUMENTATION_PYTHON_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationDotNet=${AUTO_INSTRUMENTATION_DOTNET_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationGo=${AUTO_INSTRUMENTATION_GO_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationApacheHttpd=${AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION} \
-X ${VERSION_PKG}.autoInstrumentationNginx=${AUTO_INSTRUMENTATION_NGINX_VERSION}"
FROM registry.redhat.io/ubi8/ubi-minimal:latest@sha256:cf095e5668919ba1b4ace3888107684ad9d587b1830d3eb56973e6a54f456e67
WORKDIR /
RUN microdnf update -y && rm -rf /var/cache/yum && \
microdnf install openssl -y && \
microdnf clean all
RUN mkdir /licenses
COPY opentelemetry-operator/LICENSE /licenses/.
COPY --from=builder /opt/app-root/src/opentelemetry-operator/opentelemetry-operator /usr/bin/opentelemetry-operator
ARG USER_UID=1001
USER ${USER_UID}
ENTRYPOINT ["/usr/bin/opentelemetry-operator"]
LABEL com.redhat.component="opentelemetry-operator-container" \
name="rhosdt/opentelemetry-rhel8-operator" \
summary="OpenTelemetry Operator" \
description="Operator for the OpenTelemetry collector" \
io.k8s.description="Operator for the OpenTelemetry operator." \
io.openshift.expose-services="" \
io.openshift.tags="tracing" \
io.k8s.display-name="OpenTelemetry Operator"