rvaiya-keyd
SUCCESS
23m 46s
History Source
SummaryIterations2Transcript21Dockerfile
Dockerfile40 lines · 1121 chars
FROM ubuntu:jammy-20260509 AS builder
WORKDIR /src

# Copy source
COPY . .

# Build dependencies
RUN apt-get update -y \
    && apt-get install -y --no-install-recommends build-essential \
    && rm -rf /var/lib/apt/lists/*

# Build from source
RUN make -j$(nproc)


FROM ubuntu:jammy-20260509 AS runtime
WORKDIR /opt/keyd

# Install runtime dependencies (include bash for test compatibility)
RUN apt-get update -y \
    && apt-get install -y --no-install-recommends bash ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# Make sh point to bash for compatibility with pipefail in smoke tests
RUN ln -sf /bin/bash /bin/sh

# Copy built binary from the builder stage
COPY --from=builder /src/bin/keyd /usr/local/bin/keyd

# Prepare runtime directories and keyd data
RUN mkdir -p /etc/keyd /usr/local/share/keyd /var/run

# Include data files (man pages, extensions, etc.) in the runtime image
COPY --from=builder /src/data /usr/local/share/keyd
COPY --from=builder /src/layouts /usr/local/share/keyd/layouts

# Default command: show version by default, but allow override
ENTRYPOINT ["/usr/local/bin/keyd"]
CMD ["-v"]