# Media Node — static Go binary for Unraid / Docker FROM golang:1.22-alpine AS build WORKDIR /src RUN apk add --no-cache git ca-certificates COPY node/media-node/ ./ RUN go mod tidy && CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X main.version=1.0.0" -o /media-node ./cmd/media-node FROM alpine:3.20 # uid 99 / gid 100 = Unraid nobody:users RUN apk add --no-cache ca-certificates tzdata \ && mkdir -p /etc/media-node/credentials /var/lib/media-node \ && chown -R 99:100 /etc/media-node /var/lib/media-node COPY --from=build /media-node /usr/local/bin/media-node USER 99:100 ENV MEDIA_NODE_CONFIG=/etc/media-node/config.yaml \ MEDIA_NODE_DATA=/var/lib/media-node \ MEDIA_NODE_CREDENTIALS=/etc/media-node/credentials/credentials.json EXPOSE 8080 ENTRYPOINT ["/usr/local/bin/media-node", "run"]