Skip to content
Clone
2687ace
47 lines 1.5 KB
# syntax=docker/dockerfile:1
FROM golang:1.27-bookworm AS builder
WORKDIR /src
COPY go.mod go.sum ./
COPY cmd ./cmd
COPY pkg ./pkg
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" \
-o /out/gitdata-actions-engine ./cmd/gitdata-actions-engine
FROM debian:bookworm-slim AS node-runtimes
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
xz-utils \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /opt/gitdata/node \
&& for version in 12.22.12 16.20.2 20.19.0 24.21.0; do \
mkdir -p "/opt/gitdata/node/node${version%%.*}"; \
curl -fsSL "https://nodejs.org/dist/v${version}/node-v${version}-linux-x64.tar.xz" \
| tar -xJ --strip-components=1 -C "/opt/gitdata/node/node${version%%.*}"; \
done
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
git \
openssh-client \
tar \
gzip \
xz-utils \
&& rm -rf /var/lib/apt/lists/* \
&& useradd --system --create-home --uid 10001 gitdata \
&& mkdir -p /work \
&& chown -R gitdata:gitdata /work
COPY --from=builder /out/gitdata-actions-engine /usr/local/bin/gitdata-actions-engine
COPY --from=node-runtimes --chown=gitdata:gitdata /opt/gitdata/node /opt/gitdata/node
USER gitdata
WORKDIR /work
ENTRYPOINT ["/usr/local/bin/gitdata-actions-engine"]