2020-09-29 12:22:56 +00:00
|
|
|
# Install dependencies then build ghostream
|
2020-09-30 17:28:08 +00:00
|
|
|
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
|
2020-09-21 15:29:50 +00:00
|
|
|
WORKDIR /code
|
2020-09-27 19:26:06 +00:00
|
|
|
COPY go.* ./
|
2020-09-28 15:47:33 +00:00
|
|
|
RUN go mod download && go get github.com/markbates/pkger/cmd/pkger
|
2020-09-30 17:28:08 +00:00
|
|
|
# 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 .
|
2020-09-21 15:29:50 +00:00
|
|
|
|
|
|
|
# Production image
|
2020-09-30 17:28:08 +00:00
|
|
|
FROM debian:bullseye-slim
|
|
|
|
RUN apt-get update && apt-get install -y ffmpeg libsrt1 musl
|
2020-09-21 15:29:50 +00:00
|
|
|
COPY --from=build_base /code/out/ghostream /app/ghostream
|
2020-09-27 19:44:12 +00:00
|
|
|
WORKDIR /app
|
2020-09-30 17:28:08 +00:00
|
|
|
# 9710 (UDP) for SRT, 8080 for Web, 2112 for monitoring and 10000-10005 (UDP) for WebRTC
|
2020-09-29 13:31:08 +00:00
|
|
|
EXPOSE 9710/udp 8080 2112 10000-10005/udp
|
2020-09-27 18:25:42 +00:00
|
|
|
CMD ["/app/ghostream"]
|