From 4fad1cbb400379324d2792ca96936267fd800133 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 21 Sep 2026 21:14:14 +1000 Subject: [PATCH 1/8] Switch to docker build action Updated the CI workflow to use Ubuntu 26.04 and modified the Docker build process to utilize the docker/build-push-action. --- .github/workflows/ci-example-dice-roller.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-example-dice-roller.yml b/.github/workflows/ci-example-dice-roller.yml index cb81d38c0..0eee435bf 100644 --- a/.github/workflows/ci-example-dice-roller.yml +++ b/.github/workflows/ci-example-dice-roller.yml @@ -60,7 +60,7 @@ jobs: dice-roller-docker: if: ${{ github.repository == 'open-telemetry/opentelemetry-ruby' }} name: Docker ${{ matrix.version }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -73,14 +73,18 @@ jobs: with: persist-credentials: false + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1 + - name: Build Docker image (${{ matrix.version }}) working-directory: examples/dice_roller - run: | - # 🐳 Build ${{ matrix.version }} image 🐳 - docker build \ - --target ${{ matrix.version }} \ - -t dice_roller:${{ matrix.version }} \ - . + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0 + with: + context: . + target: ${{ matrix.version }} + platforms: linux/amd64 + load: true + tags: dice_roller:${{ matrix.version }} - name: Run container (${{ matrix.version }}) run: | From 36713841f7d68f7e3b1757eeb811ddebc9800d05 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 21 Sep 2026 21:24:29 +1000 Subject: [PATCH 2/8] Use context --- .github/workflows/ci-example-dice-roller.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci-example-dice-roller.yml b/.github/workflows/ci-example-dice-roller.yml index 0eee435bf..4647c2df6 100644 --- a/.github/workflows/ci-example-dice-roller.yml +++ b/.github/workflows/ci-example-dice-roller.yml @@ -77,10 +77,9 @@ jobs: uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1 - name: Build Docker image (${{ matrix.version }}) - working-directory: examples/dice_roller uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0 with: - context: . + context: examples/dice_roller target: ${{ matrix.version }} platforms: linux/amd64 load: true From dc6457f2c8b25e8801a37e1209ec1bdd00cb0402 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 21 Sep 2026 21:41:13 +1000 Subject: [PATCH 3/8] Setup qemu --- .github/workflows/ci-example-dice-roller.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci-example-dice-roller.yml b/.github/workflows/ci-example-dice-roller.yml index 4647c2df6..8988e48dd 100644 --- a/.github/workflows/ci-example-dice-roller.yml +++ b/.github/workflows/ci-example-dice-roller.yml @@ -73,8 +73,13 @@ jobs: with: persist-credentials: false + - name: Set up QEMU + uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1 + with: + driver: docker-container - name: Build Docker image (${{ matrix.version }}) uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0 From 694ee52951781337e14300bb1b397b12de12199d Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 21 Sep 2026 21:51:29 +1000 Subject: [PATCH 4/8] Update Ruby base image SHA in Dockerfile --- examples/dice_roller/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dice_roller/Dockerfile b/examples/dice_roller/Dockerfile index 2c0939326..ed3dcc2b5 100644 --- a/examples/dice_roller/Dockerfile +++ b/examples/dice_roller/Dockerfile @@ -10,7 +10,7 @@ # --------------------------------------------------------------------------- ARG APP_VERSION=instrumented -FROM ruby:3.3.12-slim@sha256:9d6e20500e6d10c9125895491dfa5cccdbb0497f0e8a0f38ca2d7e4f410c6283 AS base +FROM ruby:3.3.12-slim@sha256:379ffc9ca20cae2655cb80cac53ee23e1e7d859c03a4cceb7f567d6ce4873cee AS base WORKDIR /app From ff881f1316d6ee293f4ecf0bab82b251c6ed413b Mon Sep 17 00:00:00 2001 From: James Thompson Date: Tue, 22 Sep 2026 12:37:22 +1000 Subject: [PATCH 5/8] switch to compose --- .github/workflows/ci-example-dice-roller.yml | 27 +++++--------------- examples/dice_roller/compose.yml | 16 ++++++++++++ 2 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 examples/dice_roller/compose.yml diff --git a/.github/workflows/ci-example-dice-roller.yml b/.github/workflows/ci-example-dice-roller.yml index 8988e48dd..9842a3eec 100644 --- a/.github/workflows/ci-example-dice-roller.yml +++ b/.github/workflows/ci-example-dice-roller.yml @@ -91,27 +91,11 @@ jobs: tags: dice_roller:${{ matrix.version }} - name: Run container (${{ matrix.version }}) + working-directory: examples/dice_roller run: | # 🐳 Start container 🐳 - docker run -d \ - --name dice_roller_${{ matrix.version }} \ - -p 8080:8080 \ - -e OTEL_TRACES_EXPORTER=none \ - -e OTEL_METRICS_EXPORTER=none \ - -e OTEL_LOGS_EXPORTER=none \ - -e OTEL_SERVICE_NAME=dice_roller_ci \ - dice_roller:${{ matrix.version }} - echo "Waiting for container to be ready..." - for i in $(seq 1 30); do - if curl -sf http://localhost:8080/rolldice > /dev/null 2>&1; then - echo "Container ready after ${i}s" - exit 0 - fi - sleep 1 - done - echo "Container did not start in time" >&2 - docker logs dice_roller_${{ matrix.version }} - exit 1 + export VERSION=${{ matrix.version }} + docker compose up --wait -d - name: Verify /rolldice (single roll) run: | @@ -133,6 +117,7 @@ jobs: - name: Stop and remove container if: always() + working-directory: examples/dice_roller run: | - docker stop dice_roller_${{ matrix.version }} || true - docker rm dice_roller_${{ matrix.version }} || true + export VERSION=${{ matrix.version }} + docker compose down --remove-orphans --volumes diff --git a/examples/dice_roller/compose.yml b/examples/dice_roller/compose.yml new file mode 100644 index 000000000..ff8915564 --- /dev/null +++ b/examples/dice_roller/compose.yml @@ -0,0 +1,16 @@ +services: + dice_roller: + image: dice_roller:${VERSION} + container_name: dice_roller_${VERSION} + ports: + - "8080:8080" + environment: + OTEL_TRACES_EXPORTER: none + OTEL_METRICS_EXPORTER: none + OTEL_LOGS_EXPORTER: none + OTEL_SERVICE_NAME: dice_roller_ci + healthcheck: + test: ["CMD", "curl", "-sf", "http://localhost:8080/rolldice"] + interval: 1s + timeout: 1s + retries: 30 From 55a0bfc4d2801e59401045fb26c086c772b1011d Mon Sep 17 00:00:00 2001 From: James Thompson Date: Tue, 22 Sep 2026 12:43:38 +1000 Subject: [PATCH 6/8] capture logs --- .github/workflows/ci-example-dice-roller.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci-example-dice-roller.yml b/.github/workflows/ci-example-dice-roller.yml index 9842a3eec..1ddae8f48 100644 --- a/.github/workflows/ci-example-dice-roller.yml +++ b/.github/workflows/ci-example-dice-roller.yml @@ -115,6 +115,11 @@ jobs: echo "Response: $RESPONSE" echo "$RESPONSE" | grep -qE '^[1-6]$' + - name: Debug container logs + if: failure() + run: | + docker logs dice_roller_${{ matrix.version }} + - name: Stop and remove container if: always() working-directory: examples/dice_roller From 767edba688a00a487b6b7ae22021d786ab5fc291 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Tue, 22 Sep 2026 12:57:46 +1000 Subject: [PATCH 7/8] Update health check --- examples/dice_roller/compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dice_roller/compose.yml b/examples/dice_roller/compose.yml index ff8915564..fae0b97d0 100644 --- a/examples/dice_roller/compose.yml +++ b/examples/dice_roller/compose.yml @@ -10,7 +10,7 @@ services: OTEL_LOGS_EXPORTER: none OTEL_SERVICE_NAME: dice_roller_ci healthcheck: - test: ["CMD", "curl", "-sf", "http://localhost:8080/rolldice"] + test: ["CMD", "bash", "-c", "curl -s -o /dev/null http://localhost:8080/rolldice"] interval: 1s timeout: 1s retries: 30 From 25b487b359a4dbe090b84b3519555a30122b2afc Mon Sep 17 00:00:00 2001 From: James Thompson Date: Tue, 22 Sep 2026 13:03:34 +1000 Subject: [PATCH 8/8] Update Dockerfile --- examples/dice_roller/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dice_roller/Dockerfile b/examples/dice_roller/Dockerfile index ed3dcc2b5..d2cadba27 100644 --- a/examples/dice_roller/Dockerfile +++ b/examples/dice_roller/Dockerfile @@ -16,7 +16,7 @@ WORKDIR /app # Install build dependencies RUN apt-get update -qq && \ - apt-get install -y --no-install-recommends build-essential && \ + apt-get install -y --no-install-recommends build-essential curl && \ rm -rf /var/lib/apt/lists/* # ---------------------------------------------------------------------------