Conversation
- Dockerfile: Add libaio.so.1t64 -> libaio.so.1 symlink for Ubuntu 24.04 t64 compat - Dockerfile.ubuntu: Copy libaio.so.1t64 and create libaio.so.1 symlink (consistent with CI workaround and Dockerfile) - Dockerfile.cbl-mariner: Revert dnf back to tdnf (Azure Linux 3.0 uses tdnf) - docker-linux.yml: Update GHCR image names to match new base OS (jammy -> noble, cbl-mariner2.0 -> azurelinux3.0) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The KeraLua NuGet package bundles a glibc-compiled liblua54.so that gets published to /app/liblua54.so. On Alpine (musl libc), .NET loads this glibc binary first (app dir takes priority), causing SIGSEGV on any Lua EVAL command. Remove it in the build stage so .NET falls through to the musl-compiled system Lua library via the runtime symlink. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Garnet’s Docker build/publish pipeline to target .NET 10 and refreshes container base images/distribution variants (e.g., Ubuntu Noble, AzureLinux 3.0), including dependency adjustments for the Ubuntu 24.04 libaio time64 transition.
Changes:
- Bump
dotnet publishtarget fromnet8.0tonet10.0across Dockerfiles and move runtime images to .NET 10 tags. - Refresh Linux base images (Ubuntu 24.04/Noble, AzureLinux 3.0) and update
libaio/Lua installation + symlink logic. - Rename Linux image tags in the Docker GitHub Actions workflow to match new distro naming.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Dockerfile | Move to .NET 10 runtime and update libaio package/symlink logic. |
| Dockerfile.alpine | Move to .NET 10 Alpine runtime; simplify apk install step. |
| Dockerfile.ubuntu | Move to .NET 10 Noble runtime; add amd64-only libaio workaround stage and update multiarch Lua symlink logic. |
| Dockerfile.chiseled | Move to .NET 10 Noble chiseled runtime; update Lua builder base and multiarch path detection. |
| Dockerfile.cbl-mariner | Move to .NET 10 AzureLinux 3.0 runtime; update Lua builder base and multiarch path detection. |
| Dockerfile.nanoserver | Move to .NET 10 Nano Server runtime and publish target. |
| .github/workflows/docker-linux.yml | Update image tag names for Noble/Noble-chiseled/AzureLinux 3.0 variants. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The chiseled (distroless) image was missing libaio.so.1, causing --device-type Native to fail with 'libaio.so.1: cannot open shared object file'. Add libaio1t64 to the libs-builder stage and copy both the library and compat symlink into the final chiseled image. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the hardcoded --platform=linux/amd64 builder stage that always copied x86_64 libaio into the runtime image regardless of target arch. Install libaio1t64 directly in the runtime stage via apt-get (alongside liblua5.4-0) so the correct architecture library is installed, matching the approach used in the default Dockerfile. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TalZaccai
approved these changes
Mar 4, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comprehensive Python script that verifies all 5 Linux Docker images: - Build all Dockerfiles - Basic server tests (PING, SET, GET) - Lua EVAL scripting - Default device persistence (all platforms incl. Alpine) - Native device persistence (glibc platforms) - Library resolution checks (libaio, liblua54, libnative_device) - Optional multi-platform buildx (amd64+arm64) Usage: python3 test/docker-tests/validate_docker_images.py [--skip-build] [--multiplatform] [--images ...] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The libaio files copied into prep-runtime's /usr/lib were never transferred to the final chiseled image (only /usr/share/dotnet/shared is copied from prep-runtime). The final image already gets libaio directly from libs-builder. Remove the unused copy/symlink steps. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The runtime base image is now azurelinux3.0 and the CI publishes as -azurelinux3.0. Rename the Dockerfile to match and update the workflow matrix and test script references. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…into badrishc/update-docker
Azure Linux 3.0 ships lua-libs (providing /usr/lib/liblua-5.4.so) in the base runtime image. Use a symlink to this native library instead of copying a cross-distro binary from an Ubuntu builder stage. This avoids potential glibc ABI compatibility issues and removes an unnecessary build stage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
SAVE blocks until the checkpoint completes and returns, eliminating the race condition from the sleep-based BGSAVE approach. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TalZaccai
approved these changes
Mar 4, 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.
No description provided.