Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Avoid QEMU emulation for .NET publish stages

Open
#127 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
csharp, docker

Research direction

Read src/Dome.Server/Dome.Api/Dockerfile and src/Dome.Socket/Dome.Socket.Api/Dockerfile, focusing on the .NET SDK and runtime stages and their publish commands. Check the repository's build workflow or instructions for multi-platform builds, then build both images for linux/amd64 and linux/arm64 and compare per-platform durations. Done means both images run on their target architectures and SDK restore/publish runs natively on the build platform.

Written by the indexing model from the issue text.

Description

Summary

The server and socket Dockerfiles build both linux/amd64 and linux/arm64. Their .NET SDK build stages currently use the default target platform, which can cause SDK restore/publish to execute under QEMU for the ARM64 image on GitHub's AMD64 runners.

Proposed change

Use the BuildKit build platform for the .NET SDK stage (for example, FROM --platform=$BUILDPLATFORM ... AS build), then publish for $TARGETARCH using the .NET SDK's architecture option. Keep the runtime stage on the target platform.

Apply this to:

  • src/Dome.Server/Dome.Api/Dockerfile
  • src/Dome.Socket/Dome.Socket.Api/Dockerfile

Acceptance criteria

  • Both Dockerfiles build successfully for linux/amd64 and linux/arm64.
  • The published output runs on the requested target architecture.
  • The .NET SDK restore/publish steps execute natively on the runner rather than under QEMU.
  • Compare per-platform build durations before and after.
Dominant language
C#
Stars
0
Forks
2
Avg merge
5h 22m
Merged PRs (30d)
28

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Dome-Works/DOME

All issues in Dome-Works/DOME

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.