From 39adf13a3e4dd0992298b2f0c649dcce6cdf6ea1 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:28:39 +0200 Subject: [PATCH 1/6] Add Dockerfile --- Dockerfile | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..aca2c08 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM golang:1.16 as builder +WORKDIR /src +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN go build -o apollo ./cmd/ + +FROM alpine +COPY --from=builder /src/apollo /bin/apollo +RUN apk add --no-cache ca-certificates curl dumb-init ffmpeg gnupg python3 && \ + curl -Lo /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl && \ + curl -Lo youtube-dl.sig https://yt-dl.org/downloads/latest/youtube-dl.sig && \ + gpg --keyserver keyserver.ubuntu.com --recv-keys '7D33D762FD6C35130481347FDB4B54CBA4826A18' && \ + gpg --keyserver keyserver.ubuntu.com --recv-keys 'ED7F5BF46B3BBED81C87368E2C393E0F18A9236D' && \ + gpg --verify youtube-dl.sig /usr/local/bin/youtube-dl && \ + chmod a+rx /usr/local/bin/youtube-dl && \ + ln -s /usr/bin/python3 /usr/bin/python && \ + rm youtube-dl.sig && \ + apk del curl gnupg +ENTRYPOINT ["/bin/apollo"] \ No newline at end of file From fa6888bc1f994a35526c53125f28a40b09830915 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:49:33 +0200 Subject: [PATCH 2/6] Add libc6-compat for CGO compatibilty --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index aca2c08..b2c1059 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,9 +6,8 @@ COPY . . RUN go build -o apollo ./cmd/ FROM alpine -COPY --from=builder /src/apollo /bin/apollo -RUN apk add --no-cache ca-certificates curl dumb-init ffmpeg gnupg python3 && \ - curl -Lo /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl && \ +RUN apk add --no-cache ca-certificates curl dumb-init ffmpeg gnupg python3 libc6-compat +RUN curl -Lo /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl && \ curl -Lo youtube-dl.sig https://yt-dl.org/downloads/latest/youtube-dl.sig && \ gpg --keyserver keyserver.ubuntu.com --recv-keys '7D33D762FD6C35130481347FDB4B54CBA4826A18' && \ gpg --keyserver keyserver.ubuntu.com --recv-keys 'ED7F5BF46B3BBED81C87368E2C393E0F18A9236D' && \ From d1e8ddc8740f08658b2a36ae6cf6a9b215d474ab Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:49:52 +0200 Subject: [PATCH 3/6] COPY binary and static files from builder --- Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index b2c1059..a19cbe4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,4 +16,9 @@ RUN curl -Lo /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtub ln -s /usr/bin/python3 /usr/bin/python && \ rm youtube-dl.sig && \ apk del curl gnupg +WORKDIR /etc/apollo +RUN mkdir data +COPY --from=builder /src/apollo /bin/apollo +COPY --from=builder /src/static/ ./static/ +EXPOSE 8993 ENTRYPOINT ["/bin/apollo"] \ No newline at end of file From 1d1003de8ad7753ac191caa09429a0e29c15ed89 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:50:08 +0200 Subject: [PATCH 4/6] Ignore errors in godotenv to be able to use real env --- pkg/apollo/server.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/apollo/server.go b/pkg/apollo/server.go index 9f6af2a..cdb6301 100644 --- a/pkg/apollo/server.go +++ b/pkg/apollo/server.go @@ -127,8 +127,7 @@ func authenticatePassword(w http.ResponseWriter, r *http.Request) { } func isValidPassword(password string) bool { - err := godotenv.Load() - check(err) + godotenv.Load() truePass := os.Getenv("PASSWORD") return truePass == password } From a15065a8fea98ad6d94bdfdaffdb316d9f29541e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:50:30 +0200 Subject: [PATCH 5/6] Add example docker-compose --- docker-compose.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..88cd679 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.6' + +services: + app: + build: . + environment: + PASSWORD: my_password + ports: + - 8993:8993 \ No newline at end of file From fda7d62207ca91d442332d4bf8836f017e420e81 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Wed, 11 Aug 2021 19:53:25 +0200 Subject: [PATCH 6/6] Give credit to wernight --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index a19cbe4..1fd6f59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,8 @@ COPY . . RUN go build -o apollo ./cmd/ FROM alpine + +# Taken from https://github.com/wernight/docker-youtube-dl RUN apk add --no-cache ca-certificates curl dumb-init ffmpeg gnupg python3 libc6-compat RUN curl -Lo /usr/local/bin/youtube-dl https://yt-dl.org/downloads/latest/youtube-dl && \ curl -Lo youtube-dl.sig https://yt-dl.org/downloads/latest/youtube-dl.sig && \