Stitch any CI into Tangled
1FROM golang:1.25.7-trixie AS build
2
3WORKDIR /app
4
5# Keep dependency downloads in their own layer so ordinary source edits do not
6# force Docker users to redownload the full module graph every rebuild.
7COPY go.mod go.sum ./
8RUN go mod download
9
10COPY . .
11RUN go build -o /app/bin/tack .
12
13FROM debian:trixie-slim AS run
14
15ARG DEBIAN_FRONTEND=noninteractive
16
17# Tack talks to HTTPS endpoints at runtime; the slim Debian base intentionally
18# omits the CA bundle, so install only that and drop apt's transient indexes.
19RUN apt-get update \
20 && apt-get install -y --no-install-recommends ca-certificates \
21 && rm -rf /var/lib/apt/lists/*
22
23COPY --from=build /app/bin/tack /app/bin/tack
24
25LABEL org.opencontainers.image.title="Tack" \
26 org.opencontainers.image.description="Stitch any CI into Tangled" \
27 org.opencontainers.image.authors="Mitchell Hashimoto" \
28 org.opencontainers.image.source="https://tangled.org/mitchellh.com/tack" \
29 org.opencontainers.image.documentation="https://tangled.org/mitchellh.com/tack" \
30 org.opencontainers.image.licenses="MIT" \
31 io.atcr.readme="https://tangled.org/mitchellh.com/tack/raw/main/README.md"
32
33CMD ["/app/bin/tack"]