mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-19 13:36:09 +05:00
feat: add github action for docker build on release (#132)
* feat: add github action Add github action for auto build slim torrverser alpine image with ffmpeg for linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le platforms * build: move creating dirs and files to entrypoint * fix: remove linux/386 and linux/ppc64le from docker building * fix: update readme with docker info
This commit is contained in:
60
Dockerfile
Normal file
60
Dockerfile
Normal file
@@ -0,0 +1,60 @@
|
||||
### FRONT BUILD START ###
|
||||
FROM --platform=$BUILDPLATFORM node:16-alpine as front
|
||||
COPY ./web /app
|
||||
WORKDIR /app
|
||||
# Build front once upon multiarch build
|
||||
RUN yarn install && yarn run build
|
||||
### FRONT BUILD END ###
|
||||
|
||||
### BUILD TORRSERVER MULTIARCH START ###
|
||||
FROM --platform=$BUILDPLATFORM golang:1.17-alpine as builder
|
||||
|
||||
COPY . /opt/src
|
||||
COPY --from=front /app/build /opt/src/web/build
|
||||
|
||||
WORKDIR /opt/src
|
||||
|
||||
ARG TARGETARCH
|
||||
|
||||
# Step for multiarch build with docker buildx
|
||||
ENV GOARCH=$TARGETARCH
|
||||
|
||||
# Build torrserver
|
||||
RUN apk add --update g++ \
|
||||
&& go run gen_web.go \
|
||||
&& cd server \
|
||||
&& go clean -i -r -cache \
|
||||
&& go mod tidy \
|
||||
&& go build -ldflags '-w -s' --o "torrserver" ./cmd
|
||||
### BUILD TORRSERVER MULTIARCH END ###
|
||||
|
||||
|
||||
### UPX COMPRESSING START ###
|
||||
FROM debian:buster-slim as compressed
|
||||
|
||||
COPY --from=builder /opt/src/server/torrserver ./torrserver
|
||||
|
||||
RUN apt-get update && apt-get install -y upx-ucl && upx --best --lzma ./torrserver
|
||||
# Compress torrserver only for amd64 and arm64 no variant platforms
|
||||
# ARG TARGETARCH
|
||||
# ARG TARGETVARIANT
|
||||
# RUN if [ "$TARGETARCH" == 'amd64' ]; then compress=1; elif [ "$TARGETARCH" == 'arm64' ] && [ -z "$TARGETVARIANT" ]; then compress=1; else compress=0; fi \
|
||||
# && if [[ "$compress" -eq 1 ]]; then ./upx --best --lzma ./torrserver; fi
|
||||
### UPX COMPRESSING END ###
|
||||
|
||||
### BUILD MAIN IMAGE START ###
|
||||
FROM alpine
|
||||
|
||||
ENV TS_CONF_PATH="/opt/ts/config"
|
||||
ENV TS_LOG_PATH="/opt/ts/log"
|
||||
ENV TS_TORR_DIR="/opt/ts/torrents"
|
||||
ENV TS_PORT=8090
|
||||
ENV GODEBUG=madvdontneed=1
|
||||
|
||||
COPY --from=compressed ./torrserver /usr/bin/torrserver
|
||||
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
|
||||
|
||||
RUN apk add --no-cache --update ffmpeg
|
||||
|
||||
CMD /docker-entrypoint.sh
|
||||
### BUILD MAIN IMAGE end ###
|
||||
Reference in New Issue
Block a user