-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathDockerfile.dev
22 lines (19 loc) · 1.07 KB
/
Dockerfile.dev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Use an intermediate container for initial building
FROM golang:bullseye AS builder
RUN apt-get update && apt-get install -y upx ca-certificates --no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
# Let go packages call C code
ENV GO111MODULE=on CGO_ENABLED=1 GOAMD64=v3
WORKDIR /build
COPY . .
RUN GOOS=linux GOARCH=amd64 go build -a -v -ldflags="-extldflags '-static' -s -w" -tags 'osusergo,netgo,static' -asmflags 'all=-trimpath={{.Env.GOPATH}}' .
# Compress the binary and verify the output using UPX
# h/t @FiloSottile/Filippo Valsorda: https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/
# No compression. We're in dev.
# Copy our binaries to root of yt-dlp chainguard container
FROM ghcr.io/goproslowyo/chainguard-python-yt-dlp:dev
COPY --chown=65532:65532 --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --chown=65532:65532 --from=ghcr.io/goproslowyo/ffmpeg-static:latest /ffmpeg /usr/bin/ffmpeg
COPY --chown=65532:65532 --from=builder /build/trumpet /usr/bin/trumpet
USER nonroot
WORKDIR /trumpet
ENTRYPOINT ["trumpet"]