1
0
mirror of https://github.com/containers/youki synced 2026-07-26 05:21:02 +02:00
Files
Yuta Nagai 11e8ec0fe5 fix(libcgroups): add /run/systemd/private fallback for dbus system connection (#3557)
* fix(libcgroups): add /run/systemd/private fallback for dbus system connection

Signed-off-by: nayuta723 <nayuta723@gmail.com>

* fix(libcgroups): stabilize dbus connection with exponential-backoff retry and SO_RCVTIMEO

Signed-off-by: nayuta723 <nayuta723@gmail.com>

* test(k8s): add kind cluster test with systemd cgroup enabled

Signed-off-by: nayuta723 <nayuta723@gmail.com>

---------

Signed-off-by: nayuta723 <nayuta723@gmail.com>
2026-06-30 20:18:07 +09:00

59 lines
2.1 KiB
Docker

# syntax=docker/dockerfile:1.4
ARG KIND_NODE_VERSION=v1.34.0
FROM kindest/node:${KIND_NODE_VERSION} AS kind-base
FROM kind-base AS youki-build
# Install build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
pkg-config \
libsystemd-dev \
build-essential \
libelf-dev \
libseccomp-dev \
libclang-dev \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > /tmp/rustup.sh && sh /tmp/rustup.sh -y --profile=minimal
ENV PATH="/root/.cargo/bin:${PATH}"
WORKDIR /youki
# Copy source code and build with required features
COPY . .
RUN cargo build --release -p youki --features "v1 v2 systemd"
FROM scratch AS shim
COPY --from=youki-build /youki/target/release/youki /
FROM kind-base AS kind-fetch
ARG TARGETARCH
ARG KIND_VERSION=v0.30.0
RUN curl -sSLf https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-${TARGETARCH} > /root/kind && chmod +x /root/kind
FROM scratch AS kind-bin
COPY --from=kind-fetch /root/kind /kind
FROM kind-base AS kind-node-base
RUN <<EOF
set -e
echo '[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.youki]' >> /etc/containerd/config.toml
echo ' runtime_type = "io.containerd.runc.v2"' >> /etc/containerd/config.toml
echo ' [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.youki.options]' >> /etc/containerd/config.toml
echo ' BinaryName = "/usr/local/bin/youki"' >> /etc/containerd/config.toml
EOF
# Install runtime dependency for youki
RUN apt-get update && apt-get install -y --no-install-recommends libseccomp2 \
&& rm -rf /var/lib/apt/lists/*
COPY --link --from=shim /* /usr/local/bin/
# Default node image: SystemdCgroup disabled for all runtimes (cgroupfs driver)
FROM kind-node-base AS kind-node
RUN sed -i 's,SystemdCgroup = true,,' /etc/containerd/config.toml
# Node image: SystemdCgroup enabled for all runtimes including youki.
# kindest/node has no dbus; this tests the /run/systemd/private fallback in youki.
FROM kind-node-base AS kind-node-systemd-cgroup
RUN echo ' SystemdCgroup = true' >> /etc/containerd/config.toml