-
-
Notifications
You must be signed in to change notification settings - Fork 150
fix: docker image build for amd64 and arm64 separately #1364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: docker image build for amd64 and arm64 separately #1364
Conversation
WalkthroughThe GitHub Actions workflows for building and releasing Docker images have been updated to add architecture-specific tags for Kafka images. Separate build and push steps for Changes
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (2)
.github/workflows/build-push-edge-kafka.yaml (1)
40-60
: Preserve backward compatibility for theedge-kafka
tagConsumers currently pulling
parseable/parseable:edge-kafka
will start 404ing because onlyedge-kafka-amd64
andedge-kafka-arm64
are being pushed. To avoid breaking downstream users, add the original tag as an alias or publish a multi-arch manifest.• File:
.github/workflows/build-push-edge-kafka.yaml
– Line ~46 (x86_64 build)
– Line ~57 (aarch64 build)Example: add the alias in each build step
- tags: parseable/parseable:edge-kafka-amd64 + tags: | + parseable/parseable:edge-kafka-amd64 + parseable/parseable:edge-kafka # backward-compatible aliasAnd similarly for the ARM64 block:
- tags: parseable/parseable:edge-kafka-arm64 + tags: | + parseable/parseable:edge-kafka-arm64 + parseable/parseable:edge-kafka # backward-compatible aliasAlternatively, after both builds add:
docker manifest create parseable/parseable:edge-kafka \ --amend parseable/parseable:edge-kafka-amd64 \ --amend parseable/parseable:edge-kafka-arm64 docker manifest push parseable/parseable:edge-kafkaThis ensures
edge-kafka
continues to resolve to both architectures..github/workflows/release.yml (1)
233-254
: Add a generic-kafka
tag and consolidate the Kafka build steps
The current workflow only publishes…-kafka-amd64
and…-kafka-arm64
, but omits the unsuffixed…-kafka
tag that downstream Helm charts and users may expect. To restore compatibility and reduce duplication:• In
.github/workflows/release.yml
(lines 233–254), update each Kafka build to also tag the generic image or publish a manifest list for${{ github.ref_name }}-kafka
.
• Consider collapsing both steps into a single multi-platform build ifDockerfile.kafka
supportsTARGETPLATFORM
, or use a matrix to DRY outcontext
,file
, andpush: true
.Example diff for the amd64 step:
- name: Build and push kafka amd64 uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile.kafka push: true - tags: parseable/parseable:${{ github.ref_name }}-kafka-amd64 + tags: | + parseable/parseable:${{ github.ref_name }}-kafka + parseable/parseable:${{ github.ref_name }}-kafka-amd64 platforms: linux/amd64 build-args: | LIB_DIR=x86_64-linux-gnuRepeat the same for the arm64 step, or replace both with:
platforms: linux/amd64,linux/arm64 tags: - parseable/parseable:${{ github.ref_name }}-kafka - parseable/parseable:${{ github.ref_name }}-kafka-${{ matrix.arch }}
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.github/workflows/build-push-edge-kafka.yaml
(2 hunks).github/workflows/release.yml
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: nikhilsinhaparseable
PR: parseablehq/parseable#1302
File: .github/workflows/build.yaml:170-175
Timestamp: 2025-04-26T03:58:02.341Z
Learning: In the parseable project, the Linux-specific environment variables (PKG_CONFIG_PATH, SASL2_DIR, OPENSSL_DIR, OPENSSL_ROOT_DIR, SASL2_STATIC) in the Kafka build step of GitHub Actions workflows don't cause issues for macOS builds and can safely be applied to both platforms.
.github/workflows/release.yml (1)
Learnt from: nikhilsinhaparseable
PR: parseablehq/parseable#1302
File: .github/workflows/build.yaml:170-175
Timestamp: 2025-04-26T03:58:02.341Z
Learning: In the parseable project, the Linux-specific environment variables (PKG_CONFIG_PATH, SASL2_DIR, OPENSSL_DIR, OPENSSL_ROOT_DIR, SASL2_STATIC) in the Kafka build step of GitHub Actions workflows don't cause issues for macOS builds and can safely be applied to both platforms.
.github/workflows/build-push-edge-kafka.yaml (1)
Learnt from: nikhilsinhaparseable
PR: parseablehq/parseable#1302
File: .github/workflows/build.yaml:170-175
Timestamp: 2025-04-26T03:58:02.341Z
Learning: In the parseable project, the Linux-specific environment variables (PKG_CONFIG_PATH, SASL2_DIR, OPENSSL_DIR, OPENSSL_ROOT_DIR, SASL2_STATIC) in the Kafka build step of GitHub Actions workflows don't cause issues for macOS builds and can safely be applied to both platforms.
🪛 YAMLlint (1.37.1)
.github/workflows/release.yml
[error] 232-232: trailing spaces
(trailing-spaces)
⏰ Context from checks skipped due to timeout of 90000ms (10)
- GitHub Check: Quest Smoke and Load Tests for Standalone deployments
- GitHub Check: Quest Smoke and Load Tests for Distributed deployments
- GitHub Check: coverage
- GitHub Check: Build Default x86_64-pc-windows-msvc
- GitHub Check: Build Default aarch64-unknown-linux-gnu
- GitHub Check: Build Default x86_64-apple-darwin
- GitHub Check: Build Default aarch64-apple-darwin
- GitHub Check: Build Default x86_64-unknown-linux-gnu
- GitHub Check: Build Kafka x86_64-unknown-linux-gnu
- GitHub Check: Build Kafka aarch64-apple-darwin
Summary by CodeRabbit