diff --git a/Dockerfile b/Dockerfile index 3e44d50..613e557 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,20 @@ # Install dependencies then build ghostream -FROM golang:1.15-alpine AS build_base -RUN apk add --no-cache gcc musl-dev -# libsrt is not yet packaged in community repository -RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing libsrt-dev +FROM debian:bullseye-slim AS build_base +RUN apt-get update && \ + apt-get install -y --no-install-recommends ca-certificates \ + gcc golang libc6-dev libsrt1 libsrt-openssl-dev musl-dev WORKDIR /code COPY go.* ./ RUN go mod download && go get github.com/markbates/pkger/cmd/pkger -COPY . . -RUN go generate && go build -o ./out/ghostream . +# Don't copy all to save time each time we touch a non-code file +COPY auth/ internal/ stream/ web/ go.mod go.sum main.go ./ +RUN PATH=/root/go/bin:$PATH go generate && go build -o ./out/ghostream . # Production image -FROM alpine:3.12 -RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing libsrt -RUN apk add ffmpeg +FROM debian:bullseye-slim +RUN apt-get update && apt-get install -y ffmpeg libsrt1 musl COPY --from=build_base /code/out/ghostream /app/ghostream WORKDIR /app -# 9710 for SRT, 8080 for Web, 2112 for monitoring and 10000-10005 (UDP) for WebRTC +# 9710 (UDP) for SRT, 8080 for Web, 2112 for monitoring and 10000-10005 (UDP) for WebRTC EXPOSE 9710/udp 8080 2112 10000-10005/udp CMD ["/app/ghostream"]