diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9414382 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +Dockerfile diff --git a/Dockerfile b/Dockerfile index 3c59728..d27f202 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,39 @@ +FROM golang:alpine as builder + +RUN apk add --no-cache \ + build-base \ + opus-dev + +COPY . /go/src/github.com/matthieugrieger/mumbledj +WORKDIR /go/src/github.com/matthieugrieger/mumbledj + +RUN go get -v \ + && go build -v -ldflags="-s -w" + FROM alpine -ENV GOPATH=/ +RUN adduser -D mumbledj -RUN apk add --update ca-certificates go ffmpeg make build-base opus-dev python aria2 -RUN apk upgrade +RUN apk add --no-cache \ + aria2 \ + libressl \ + python2 -RUN wget https://yt-dl.org/downloads/latest/youtube-dl -O /bin/youtube-dl && chmod a+x /bin/youtube-dl +RUN wget -O /usr/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl \ + && chmod +x /usr/bin/youtube-dl -COPY . /src/github.com/matthieugrieger/mumbledj -COPY config.yaml /root/.config/mumbledj/config.yaml +RUN wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz \ + && tar xvf ffmpeg-git-amd64-static.tar.xz '*/ffmpeg' || true \ + && mv ffmpeg-git-20190527-amd64-static/ffmpeg /usr/bin/ffmpeg \ + && rm -rf ffmpeg-git-* \ + && apk add --no-cache upx \ + && upx /usr/bin/ffmpeg \ + && apk del upx -WORKDIR /src/github.com/matthieugrieger/mumbledj +COPY --from=builder /go/src/github.com/matthieugrieger/mumbledj/mumbledj /usr/bin/mumbledj -RUN make -RUN make install -RUN apk del go make build-base && rm -rf /var/cache/apk/* +COPY config.yaml /home/mumbledj/.config/mumbledj/config.yaml -ENTRYPOINT ["/usr/local/bin/mumbledj"] +USER mumbledj + +ENTRYPOINT ["/usr/bin/mumbledj"]