Use registry images instead of building - #98
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR shifts deployments to prefer pulling pre-built service images from GHCR (with a local build fallback), and adds CI automation to publish those images on merges to master.
Changes:
- Add a new
publish.ymlworkflow that builds and pushes the three service images to GHCR under thelatesttag on pushes tomaster. - Update deployment code to
pullimages first andbuildfrom local context only if the pull fails. - Simplify the test workflow to always build
:latestimages locally for reproducibility against the current code.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/container.py |
Adds pull_or_build_image and applies it to mysql-server, mysql-mgmt, and superset deployment paths. |
CHANGELOG.md |
Documents the new publish workflow and pull-first deployment behavior. |
.github/workflows/tests.yml |
Removes branch-tag logic; always builds and loads :latest images locally in CI tests. |
.github/workflows/publish.yml |
New workflow to build and push :latest images to GHCR via a matrix job. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add publish workflow that builds and pushes service images to GHCR on master merge. Update test workflow to pull pre-built images from the registry with a local build fallback when pull fails. Closes #97 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add pull_or_build_image static method to ContainerConnection that tries to pull images from GHCR first and falls back to local build. Apply it to MySQLServer, MySQLMgmt, and Superset container runs. Revert test workflow to always build images locally since tests validate the latest code, not published images. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Catch docker.errors.DockerException and requests.exceptions.RequestException in pull_or_build_image to handle connection-level failures during pull. Pass outer ContainerConnection client to MySQLMgmt instead of creating a fresh docker.from_env() instance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
szachovy
force-pushed
the
use-registry-images
branch
from
April 8, 2026 10:09
97943e9 to
de1dadf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a publish workflow to push images to GHCR on master merge, and add pull-first with build fallback logic to the deployment source code.
Changes
publish.ymlworkflow: Triggers on push tomaster, builds all three service images (mysql-server,mysql-mgmt,superset-service) in parallel via a matrix strategy, and pushes them to GHCR under thelatesttag.container.py): Addedpull_or_build_imagestatic method toContainerConnectionthat tries pulling from GHCR first and falls back to localdocker build. Applied toMySQLServer,MySQLMgmt, andSupersetcontainer runs.tests.ymlworkflow: Always builds images locally since tests validate the latest code, not published images.CHANGELOG.mdwith the new entries.Closes #97