Demo Environment: Multi-Arch Support & Image Rename#1829
Merged
benjamin-747 merged 4 commits intoJan 22, 2026
Conversation
Add one-click demo stack: - docker-compose.demo.yml (+ .env.example, init-db.sh) - docs guide - minor Orion server tweaks Signed-off-by: Hongze Gao <15101764808@163.com>
Review feedback addressed: - Remove unused init-db.sh mount and delete placeholder script - Orion /v2/health now hides database error details - Add docker/demo/.env to .gitignore to prevent secret leakage - Add .dockerignore to reduce build context size - docker-compose.demo.yml: • pass CAMPSITE_RUN_MIGRATIONS to campsite_api • add sample resource limits to postgres - Docs: fix FAQ anchor, replace full-width punctuation, add hardware requirements and MySQL low-privilege note. Signed-off-by: Hongze Gao <15101764808@163.com>
* New demo-multiarch-build.yml * Update compose files to orion-client naming * Update demo docs Signed-off-by: Hongze Gao <15101764808@163.com>
Add .github/workflows/demo-multiarch-build.yml which builds and pushes amd64 + arm64 manifest images for demo services (mono-engine, mega-ui, orion-server, orion-client). Workflow is triggered only on changes under docker/demo or via manual dispatch, keeping production pipelines unaffected. Signed-off-by: Hongze Gao <15101764808@163.com>
Comment on lines
+16
to
+82
| if: ${{ github.repository == 'web3infra-foundation/mega' }} | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 60 | ||
| strategy: | ||
| matrix: | ||
| include: | ||
| # mono backend | ||
| - name: mono-engine | ||
| dockerfile: docker/mono-engine-dockerfile | ||
| image_tag: mono-0.1.0-pre-release | ||
| # mega UI | ||
| - name: mega-ui | ||
| dockerfile: docker/mono-ui-dockerfile | ||
| image_tag: mega-ui-demo-0.1.0-pre-release | ||
| # orion server | ||
| - name: orion-server | ||
| dockerfile: orion-server/Dockerfile | ||
| image_tag: orion-server-0.1.0-pre-release | ||
| # orion client image (build worker) | ||
| - name: orion-client-image | ||
| dockerfile: docker/dev-image/Dockerfile | ||
| image_tag: orion-client-0.1.0-pre-release | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Set up QEMU (multi-arch emulation) | ||
| uses: docker/setup-qemu-action@v3 | ||
|
|
||
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v3 | ||
| with: | ||
| install: true | ||
|
|
||
| - name: Configure AWS Credentials | ||
| uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
| aws-region: us-east-1 | ||
|
|
||
| - name: Login to Amazon ECR Public | ||
| id: login-ecr-public | ||
| uses: aws-actions/amazon-ecr-login@v2 | ||
| with: | ||
| registry-type: public | ||
|
|
||
| - name: Build & push ${{ matrix.name }} (amd64+arm64) | ||
| env: | ||
| REGISTRY: ${{ steps.login-ecr-public.outputs.registry }} | ||
| REGISTRY_ALIAS: m8q5m4u3 | ||
| REPOSITORY: mega | ||
| IMAGE_TAG: ${{ matrix.image_tag }} | ||
| DOCKERFILE_PATH: ${{ matrix.dockerfile }} | ||
| run: | | ||
| IMAGE_BASE="$REGISTRY/$REGISTRY_ALIAS/$REPOSITORY" | ||
|
|
||
| docker buildx build \ | ||
| --platform linux/amd64,linux/arm64 \ | ||
| --builder default \ | ||
| --file "$DOCKERFILE_PATH" \ | ||
| --tag "$IMAGE_BASE:$IMAGE_TAG" \ | ||
| --push \ | ||
| --build-arg BUILDKIT_INLINE_CACHE=1 \ | ||
| --cache-from type=gha,scope=mega-demo \ | ||
| --cache-to type=gha,scope=mega-demo,mode=max \ | ||
| . |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
benjamin-747
approved these changes
Jan 22, 2026
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.
Pull Request – Demo Environment: Multi-Arch Support & Image Rename
Related issue(#1792 )
What’s new
Multi-arch workflow (
demo-multiarch-build.yml)Stand-alone GitHub Action that builds and pushes amd64 + arm64 manifest images (
mono-engine,mega-ui,orion-server,orion-client) to Amazon ECR Public.Triggered only on
docker/demo/**changes or manual dispatch → no impact to production pipelines.Image rename
mega-dev→orion-clientdocker/demo/docker-compose.demo.ymldocker/dev-image/docker-compose.yml(including container name).env.exampleorion-client-image-deploy.yml).Documentation refresh
docs/demo/docker-compose-guide-for-mega-and-orion-demo-setup.mdWhy
🛠 Implementation details
paths-ignoreensures isolation).ORION_CLIENT_IMAGE, default tagorion-client-0.1.0-pre-release.orion-client-shell.