Skip to content

Fix: update EOL base images and broken configs in four community builders#714

Open
64johnlee wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
64johnlee:fix/eol-base-images-and-broken-configs
Open

Fix: update EOL base images and broken configs in four community builders#714
64johnlee wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
64johnlee:fix/eol-base-images-and-broken-configs

Conversation

@64johnlee

Copy link
Copy Markdown

Summary

Fixes four community builders that use end-of-life base images or have broken configurations that prevent them from working correctly.


jsonnet — ubuntu:xenial EOL (Apr 2021)

File: jsonnet/Dockerfile

  • ubuntu:xenial reached EOL on April 30, 2021. It no longer receives security patches.
  • Updated to ubuntu:22.04 LTS (supported until April 2027).
  • Added --no-install-recommends and cache cleanup to reduce image size.

earthly — ubuntu:bionic EOL (Apr 2023) + stale version

File: earthly/Dockerfile

  • ubuntu:bionic reached EOL on April 2, 2023.
  • Updated to ubuntu:22.04 LTS.
  • Default version 0.5.230.8.0 (0.5.x is two major versions behind; 0.8.x is current stable).

protoc — debian:buster-slim EOL (Sep 2024) + stale version

File: protoc/Dockerfile

  • debian:buster-slim reached EOL on September 10, 2024.
  • Updated to debian:bookworm-slim (current Debian stable, supported until 2028).
  • Default protobuf version 3.12.427.3 (current stable; protobuf adopted sequential versioning after v3.21).

dataflow-python3 — three bugs fixed

File: dataflow-python3/Dockerfile

1. Python 3.7 EOL (Jun 2023) → Python 3.12
Python 3.7 no longer receives security updates. Python 3.12 is LTS through October 2028.

2. Broken ENTRYPOINT format

# Before (broken — shell form, no exec, no signal handling)
ENTRYPOINT bin/bash

# After (correct exec form)
ENTRYPOINT [/bin/bash]

3. No-op virtualenv activation (3 broken RUN layers)
Each Docker RUN executes in a fresh shell; source venv/bin/activate has no effect on subsequent RUN commands. The pip install was going to the system Python, not the virtualenv. Also, ENTRYPOINT was placed between RUN commands which is invalid.

# Before (broken)
RUN virtualenv venv
ENTRYPOINT bin/bash                          # misplaced
RUN /bin/bash -c "source venv/bin/activate" # no-op
RUN pip install apache-beam[gcp]             # installs to system Python, not venv

# After (correct)
RUN pip install --no-cache-dir apache-beam[gcp]
ENTRYPOINT ["/bin/bash"]

🤖 Generated with Claude Code

**jsonnet**: ubuntu:xenial (EOL Apr 2021) → ubuntu:22.04 LTS
- Also adds --no-install-recommends and explicit cache cleanup

**earthly**: ubuntu:bionic (EOL Apr 2023) → ubuntu:22.04 LTS; version 0.5.23 → 0.8.0
- 0.5.x is over two major versions behind; 0.8.x is the current stable series

**protoc**: debian:buster-slim (EOL Sep 2024) → debian:bookworm-slim (current stable)
- Default protobuf version 3.12.4 → 27.3 (current stable release)
- Note: protobuf adopted sequential versioning after v3.21; 27.3 is the correct format

**dataflow-python3**: three bugs fixed
1. python:3.7 (EOL Jun 2023) → python:3.12 (LTS through Oct 2028)
2. ENTRYPOINT bin/bash → ENTRYPOINT ["/bin/bash"] (exec form required for signal handling)
3. Removed broken virtualenv pattern: `source venv/bin/activate` inside RUN has no
   effect on subsequent layers. Each Docker RUN starts a fresh shell, so activated
   environments are discarded. Direct pip install into the image is correct.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@google-cla

google-cla Bot commented Jun 6, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant