Skip to content

Commit 09ab6cc

Browse files
[chore] Move build args to .env file (#1767)
* Move build args to .env file * Try different approach * Try individual value * explicitly export to $GITHUB_ENV * test each step * Remove if * explicitly export to $GITHUB_ENV no if * single build arg * Persist env vars across steps * check if .env is accessible * Load whole .env file * Move current build args to .env file * changelog * fix indentation
1 parent 1002cf0 commit 09ab6cc

File tree

11 files changed

+46
-11
lines changed

11 files changed

+46
-11
lines changed

.env

+7-3
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,22 @@ IMAGE_VERSION=1.12.0
55
IMAGE_NAME=ghcr.io/open-telemetry/demo
66
DEMO_VERSION=latest
77

8+
# Build Args
9+
TRACETEST_IMAGE_VERSION=v1.5.2
10+
OTEL_JAVA_AGENT_VERSION=2.9.0
11+
OPENTELEMETRY_CPP_VERSION=1.17.0
12+
813
# Dependent images
914
COLLECTOR_CONTRIB_IMAGE=otel/opentelemetry-collector-contrib:0.108.0
1015
FLAGD_IMAGE=ghcr.io/open-feature/flagd:v0.11.2
1116
GRAFANA_IMAGE=grafana/grafana:11.3.0
1217
JAEGERTRACING_IMAGE=jaegertracing/all-in-one:1.60
13-
# must also update version field in
18+
# must also update version field in src/grafana/provisioning/datasources/opensearch.yaml
1419
OPENSEARCH_IMAGE=opensearchproject/opensearch:2.17.1
1520
POSTGRES_IMAGE=postgres:16.4
1621
PROMETHEUS_IMAGE=quay.io/prometheus/prometheus:v2.54.1
1722
VALKEY_IMAGE=valkey/valkey:8.0-alpine
18-
# must also update the version arg in ./test/tracetesting/Dockerfile
19-
TRACETEST_IMAGE=kubeshop/tracetest:v1.5.2
23+
TRACETEST_IMAGE=kubeshop/tracetest:${TRACETEST_IMAGE_VERSION}
2024

2125
# Demo Platform
2226
ENV_PLATFORM=local

.github/workflows/component-build-images.yml

+15
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,17 @@ jobs:
124124
- uses: actions/checkout@v4
125125
with:
126126
fetch-depth: 0
127+
- name: Load environment variables from .env file
128+
run: |
129+
if [ -f .env ]; then
130+
# Filter out comments and empty lines, then add each variable to $GITHUB_ENV
131+
grep -vE '^\s*#|^\s*$' .env | while read -r line; do
132+
echo "$line" >> $GITHUB_ENV
133+
done
134+
else
135+
echo ".env file not found!"
136+
exit 1
137+
fi
127138
- name: Check for changes and set push options
128139
id: check_changes
129140
run: |
@@ -172,6 +183,10 @@ jobs:
172183
file: ${{ matrix.file_tag.file }}
173184
platforms: linux/amd64,linux/arm64
174185
push: ${{ inputs.push }}
186+
build-args: |
187+
OTEL_JAVA_AGENT_VERSION=${{ env.OTEL_JAVA_AGENT_VERSION }}
188+
OPENTELEMETRY_CPP_VERSION=${{ env.OPENTELEMETRY_CPP_VERSION }}
189+
TRACETEST_IMAGE_VERSION=${{ env.TRACETEST_IMAGE_VERSION }}
175190
tags: |
176191
${{ inputs.dockerhub_repo }}:${{ inputs.version }}-${{matrix.file_tag.tag_suffix }}
177192
${{ inputs.dockerhub_repo }}:latest-${{matrix.file_tag.tag_suffix }}

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ the release.
99

1010
* [grafana] Update grafana to 11.3.0
1111
([#1764](https://github.com/open-telemetry/opentelemetry-demo/pull/1764))
12+
* [chore] Move build args to .env file
13+
([#1767](https://github.com/open-telemetry/opentelemetry-demo/pull/1767))
1214

1315
## 1.12.0
1416

docker-compose-tests.yml

+2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ services:
3434
build:
3535
context: ./
3636
dockerfile: ./test/tracetesting/Dockerfile
37+
args:
38+
TRACETEST_IMAGE_VERSION: ${TRACETEST_IMAGE_VERSION}
3739
environment:
3840
- AD_SERVICE_ADDR
3941
- CART_SERVICE_ADDR

docker-compose.minimal.yml

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ services:
2727
dockerfile: ${AD_SERVICE_DOCKERFILE}
2828
cache_from:
2929
- ${IMAGE_NAME}:${IMAGE_VERSION}-adservice
30+
args:
31+
OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION}
3032
deploy:
3133
resources:
3234
limits:
@@ -133,6 +135,8 @@ services:
133135
dockerfile: ${CURRENCY_SERVICE_DOCKERFILE}
134136
cache_from:
135137
- ${IMAGE_NAME}:${IMAGE_VERSION}-currencyservice
138+
args:
139+
OPENTELEMETRY_CPP_VERSION: ${OPENTELEMETRY_CPP_VERSION}
136140
deploy:
137141
resources:
138142
limits:

docker-compose.yml

+8
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ services:
5353
dockerfile: ${AD_SERVICE_DOCKERFILE}
5454
cache_from:
5555
- ${IMAGE_NAME}:${IMAGE_VERSION}-adservice
56+
args:
57+
OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION}
5658
deploy:
5759
resources:
5860
limits:
@@ -171,6 +173,8 @@ services:
171173
dockerfile: ${CURRENCY_SERVICE_DOCKERFILE}
172174
cache_from:
173175
- ${IMAGE_NAME}:${IMAGE_VERSION}-currencyservice
176+
args:
177+
OPENTELEMETRY_CPP_VERSION: ${OPENTELEMETRY_CPP_VERSION}
174178
deploy:
175179
resources:
176180
limits:
@@ -224,6 +228,8 @@ services:
224228
dockerfile: ${FRAUD_SERVICE_DOCKERFILE}
225229
cache_from:
226230
- ${IMAGE_NAME}:${IMAGE_VERSION}-frauddetectionservice
231+
args:
232+
OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION}
227233
deploy:
228234
resources:
229235
limits:
@@ -637,6 +643,8 @@ services:
637643
dockerfile: ${KAFKA_SERVICE_DOCKERFILE}
638644
cache_from:
639645
- ${IMAGE_NAME}:${IMAGE_VERSION}-kafka
646+
args:
647+
OTEL_JAVA_AGENT_VERSION: ${OTEL_JAVA_AGENT_VERSION}
640648
deploy:
641649
resources:
642650
limits:

src/adservice/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ RUN ./gradlew installDist -PprotoSourceDir=./proto
2020

2121
FROM eclipse-temurin:21-jre
2222

23-
ARG version=2.6.0
23+
ARG OTEL_JAVA_AGENT_VERSION
2424
WORKDIR /usr/src/app/
2525

2626
COPY --from=builder /usr/src/app/ ./
27-
ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$version/opentelemetry-javaagent.jar /usr/src/app/opentelemetry-javaagent.jar
27+
ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$OTEL_JAVA_AGENT_VERSION/opentelemetry-javaagent.jar /usr/src/app/opentelemetry-javaagent.jar
2828
ENV JAVA_TOOL_OPTIONS=-javaagent:/usr/src/app/opentelemetry-javaagent.jar
2929

3030
EXPOSE ${AD_SERVICE_PORT}

src/currencyservice/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ FROM alpine:3.18 as builder
1818

1919
RUN apk update && apk add git cmake make g++ grpc-dev protobuf-dev linux-headers
2020

21-
ARG OPENTELEMETRY_CPP_VERSION=1.15.0
21+
ARG OPENTELEMETRY_CPP_VERSION
2222

2323
RUN git clone https://github.com/open-telemetry/opentelemetry-cpp \
2424
&& cd opentelemetry-cpp/ \

src/frauddetectionservice/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ RUN gradle shadowJar
1414

1515
FROM gcr.io/distroless/java17-debian11
1616

17-
ARG version=2.4.0
17+
ARG OTEL_JAVA_AGENT_VERSION
1818
WORKDIR /usr/src/app/
1919

2020
COPY --from=builder /usr/src/app/build/libs/frauddetectionservice-1.0-all.jar ./
21-
ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$version/opentelemetry-javaagent.jar /app/opentelemetry-javaagent.jar
21+
ADD --chmod=644 https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$OTEL_JAVA_AGENT_VERSION/opentelemetry-javaagent.jar /app/opentelemetry-javaagent.jar
2222
ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-javaagent.jar
2323

2424
ENTRYPOINT [ "java", "-jar", "frauddetectionservice-1.0-all.jar" ]

src/kafka/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
FROM apache/kafka:3.7.0
66

77
USER root
8-
ARG version=2.4.0
8+
ARG OTEL_JAVA_AGENT_VERSION
99

1010
USER appuser
1111

12-
ADD --chown=appuser:appuser https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$version/opentelemetry-javaagent.jar /tmp/opentelemetry-javaagent.jar
12+
ADD --chown=appuser:appuser https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v$OTEL_JAVA_AGENT_VERSION/opentelemetry-javaagent.jar /tmp/opentelemetry-javaagent.jar
1313

1414
ENV KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
1515
ENV KAFKA_CONTROLLER_QUORUM_VOTERS='1@0.0.0.0:9093'

test/tracetesting/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ FROM alpine
77
WORKDIR /app
88

99
# The build-images workflow action does not set a build-arg so we need to specify a default value here
10-
ARG TRACETEST_IMAGE_VERSION=v1.5.2
10+
ARG TRACETEST_IMAGE_VERSION
1111

1212
RUN apk --update add bash jq curl
1313
RUN curl -L https://raw.githubusercontent.com/kubeshop/tracetest/main/install-cli.sh | bash -s -- $TRACETEST_IMAGE_VERSION

0 commit comments

Comments
 (0)