Skip to content

feat: provide engine image builder#784

Merged
fucangfy merged 7 commits into
mainfrom
yaofu/provide_engine_image_builder
Mar 18, 2026
Merged

feat: provide engine image builder#784
fucangfy merged 7 commits into
mainfrom
yaofu/provide_engine_image_builder

Conversation

@fucangfy
Copy link
Copy Markdown
Collaborator

No description provided.

@fucangfy fucangfy requested a review from a team March 16, 2026 08:12
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the development workflow by providing a robust Docker image builder for the scqlengine. It introduces capabilities for multi-platform builds, leverages caching for efficiency, and ensures a clean development environment through isolation. Additionally, it improves the tutorial's setup process by proactively informing users about necessary image builds.

Highlights

  • New Docker Image Builder: Introduced a new build.sh script to automate the creation of the scqlengine Docker image, streamlining the build process.
  • Cross-Platform Support: The new builder supports targeting different platforms (e.g., linux/amd64, linux/arm64) for image builds.
  • Build Environment Isolation: Implemented an isolated build environment using Docker overlay volumes, protecting the developer's workspace from build-related changes.
  • Bazel Cache Integration: Added an option to enable host disk Bazel caching to significantly speed up subsequent builds.
  • Tutorial Setup Guidance: Modified the setup.sh script in the tutorial to check for the secretflow/scql:latest Docker image and guide users on how to build it if it's not present.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • examples/tutorial/docker/build.sh
    • Added a new shell script to build the scqlengine Docker image.
    • Implemented argument parsing for image name, tag, target platform, cache enabling, and development environment protection.
    • Integrated Docker volume mounts for Bazel cache and workspace, supporting overlay volumes for isolated builds.
    • Included functions for creating a Docker container, building the engine binary using Bazel, preparing build files, and building the final Docker image.
    • Added comprehensive cleanup logic to remove temporary files, stop containers, and remove overlay volumes on exit.
  • examples/tutorial/docker/scql-ubuntu.Dockerfile
    • Added a new Dockerfile for building the scqlengine image based on ubuntu:jammy.
    • Configured TARGETPLATFORM argument for multi-platform builds.
    • Installed essential packages like libgomp1, curl, and iputils-ping.
    • Copied the scqlengine binary into the image from a platform-specific temporary directory.
  • examples/tutorial/setup.sh
    • Added a check to verify if the secretflow/scql:latest Docker image exists.
    • Displayed a warning message and instructions to build the image using the new build.sh script if the image is not found.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a build script for creating a Docker image for the SCQL engine, which is a valuable addition. The script is well-structured, incorporating features like build caching and environment isolation. My feedback focuses on enhancing the script's robustness, consistency, and adherence to Docker best practices. I've provided suggestions to make boolean checks more explicit, remove unnecessary flags from Docker commands that could cause issues in automated environments, and make the build process more adaptive. For the Dockerfile, I've recommended optimizations to reduce image size and layer count. The check added to setup.sh is a good improvement for user experience.

Comment thread examples/tutorial/docker/build.sh
Comment thread examples/tutorial/docker/build.sh Outdated
Comment thread examples/tutorial/docker/build.sh Outdated
Comment thread examples/tutorial/docker/build.sh Outdated
Comment thread examples/tutorial/docker/scql-ubuntu.Dockerfile Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds tutorial tooling to build and use a locally-built secretflow/scql Docker image for the tutorial environment, and warns users during setup if the expected image is missing.

Changes:

  • Update setup.sh to warn when secretflow/scql:latest is not present locally.
  • Add a Dockerfile (scql-ubuntu.Dockerfile) for packaging the built scqlengine binary into an Ubuntu-based image.
  • Add a build script (docker/build.sh) that builds scqlengine via a builder image, stages artifacts, and builds the final runtime image (optionally with cache/isolated overlay mode).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
examples/tutorial/setup.sh Adds a local-image existence check and build hint.
examples/tutorial/docker/scql-ubuntu.Dockerfile Defines the runtime image packaging for scqlengine.
examples/tutorial/docker/build.sh Implements the end-to-end engine build + Docker image build workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread examples/tutorial/setup.sh Outdated
Comment thread examples/tutorial/docker/build.sh Outdated
Comment thread examples/tutorial/docker/build.sh Outdated
Comment thread examples/tutorial/docker/build.sh
Comment thread examples/tutorial/docker/scql-ubuntu.Dockerfile Outdated
fucangfy and others added 6 commits March 18, 2026 10:15
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment thread examples/tutorial/docker/build.sh
Copy link
Copy Markdown
Collaborator

@Song-Quan Song-Quan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fucangfy fucangfy merged commit 9f5fc94 into main Mar 18, 2026
13 checks passed
@fucangfy fucangfy deleted the yaofu/provide_engine_image_builder branch March 18, 2026 03:35
@github-actions github-actions Bot locked and limited conversation to collaborators Mar 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants