Skip to content

Update docker files to latest#1600

Merged
badrishc merged 12 commits intomainfrom
badrishc/update-docker
Mar 4, 2026
Merged

Update docker files to latest#1600
badrishc merged 12 commits intomainfrom
badrishc/update-docker

Conversation

@badrishc
Copy link
Collaborator

@badrishc badrishc commented Mar 4, 2026

No description provided.

badrishc and others added 2 commits March 3, 2026 10:15
- 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>
@badrishc badrishc requested a review from TedHartMS as a code owner March 4, 2026 00:26
Copilot AI review requested due to automatic review settings March 4, 2026 00:26
@badrishc badrishc requested a review from TalZaccai as a code owner March 4, 2026 00:26
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>
Copy link
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

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 publish target from net8.0 to net10.0 across 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.

badrishc and others added 2 commits March 3, 2026 16:38
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>
@badrishc badrishc requested a review from Copilot March 4, 2026 00:54
Copy link
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

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.

badrishc and others added 6 commits March 3, 2026 17:07
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>
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>
@badrishc badrishc merged commit 7f3500d into main Mar 4, 2026
27 checks passed
@badrishc badrishc deleted the badrishc/update-docker branch March 4, 2026 02:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants