From 570b9eb2da8f6899f3b1d589b14f8d06faff2ddf Mon Sep 17 00:00:00 2001 From: marcobaobao Date: Fri, 20 Jan 2023 19:39:09 +0100 Subject: [PATCH] reviewed dockerfile --- Dockerfile | 33 +++++++++++++++++++++------------ go.mod | 2 +- go.sum | 1 + 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8a85917..e1dab29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,29 @@ -FROM alpine:3.17 +# Multi stage build Dockerfile + +# There's no point in using the edge (development branch of alpine) +FROM alpine:3.17 AS build # folder structure -WORKDIR /usr/src/yt-dlp-webui/downloads -VOLUME /downloads WORKDIR /usr/src/yt-dlp-webui # install core dependencies -RUN apk update -RUN apk add curl wget psmisc ffmpeg nodejs npm go yt-dlp -# copy srcs +RUN apk update && \ + apk add curl wget psmisc ffmpeg nodejs yarn go yt-dlp +# copia la salsa COPY . . -# install node dependencies +# build frontend WORKDIR /usr/src/yt-dlp-webui/frontend -RUN npm i -RUN npm run build -# install go dependencies +RUN yarn install && \ + yarn build +# build backend + incubator WORKDIR /usr/src/yt-dlp-webui RUN go build -o yt-dlp-webui -# expose and run + + +FROM alpine:3.17 + +WORKDIR /usr/src/yt-dlp-webui/downloads +VOLUME /downloads + +COPY --from=build /usr/src/yt-dlp-webui /usr/bin/yt-dlp-webui + EXPOSE 3033 -CMD [ "./yt-dlp-webui" , "--out", "/downloads" ] +CMD [ "/usr/bin/yt-dlp-webui" , "--out", "/downloads" ] diff --git a/go.mod b/go.mod index cd92fe1..200f5c6 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/google/uuid v1.3.0 github.com/marcopeocchi/fazzoletti v0.0.0-20221114144444-1e802380a7db golang.org/x/sys v0.4.0 + gopkg.in/yaml.v3 v3.0.1 ) require ( @@ -23,5 +24,4 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.43.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index d7f4b9d..9b0b8e4 100644 --- a/go.sum +++ b/go.sum @@ -56,6 +56,7 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=