From cae7b9b99b8323e6996097aa57dcacefd03b87b2 Mon Sep 17 00:00:00 2001 From: Dominic Date: Sat, 18 May 2024 15:21:14 +0200 Subject: [PATCH 1/3] add default language --- src/iotro.rs | 6 ++++++ src/main.rs | 1 + 2 files changed, 7 insertions(+) diff --git a/src/iotro.rs b/src/iotro.rs index 683eb10..4f98798 100644 --- a/src/iotro.rs +++ b/src/iotro.rs @@ -94,6 +94,12 @@ pub const BRITISH: Language<'static> = Language { questions_feedback: "Questions, Suggestions and Feedback" }; +impl Default for Language<'static> { + fn default() -> Self { + GERMAN + } +} + impl FromStr for Language<'static> { type Err = anyhow::Error; diff --git a/src/main.rs b/src/main.rs index 1e46727..048fa36 100644 --- a/src/main.rs +++ b/src/main.rs @@ -154,6 +154,7 @@ struct ProjectLecture { docent: String, #[serde_as(as = "DisplayFromStr")] date: Date, + #[serde(default = "Default::default")] #[serde_as(as = "DisplayFromStr")] lang: Language<'static> } From 0de4f35311bcaa097acdc05b114d538ba1e5f512 Mon Sep 17 00:00:00 2001 From: Dominic Date: Sat, 18 May 2024 23:24:09 +0200 Subject: [PATCH 2/3] start putting together a dockerfile is still missing font installation plus potentially more stuff --- Dockerfile | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..69e9e1a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,58 @@ +FROM alpine AS builder + +RUN apk add --no-cache cargo + +RUN mkdir /src +COPY . /src +WORKDIR /src + +RUN cargo build --release --no-default-features + +# ############################################## + +FROM alpine + +ARG ffmpeg_ver=7.0 + +RUN apk add --no-cache \ + dav1d fontconfig freetype harfbuzz librsvg libva lilv-libs opus svt-av1 x264-libs x265 \ + inkscape libgcc \ + && apk add --no-cache --virtual .build-deps \ + build-base \ + dav1d-dev fontconfig-dev freetype-dev harfbuzz-dev librsvg-dev libva-dev lilv-dev opus-dev svt-av1-dev x264-dev x265-dev \ + && wget -q https://ffmpeg.org/releases/ffmpeg-${ffmpeg_ver}.tar.bz2 \ + && tar xfa ffmpeg-${ffmpeg_ver}.tar.bz2 \ + && cd ffmpeg-${ffmpeg_ver} \ + && ./configure \ + --prefix=/usr/local \ + --disable-asm \ + --disable-librtmp \ + --disable-lzma \ + --disable-static \ + --enable-avfilter \ + --enable-gpl \ + --enable-libdav1d \ + --enable-libfontconfig \ + --enable-libfreetype \ + --enable-libharfbuzz \ + --enable-libopus \ + --enable-librsvg \ + --enable-libsvtav1 \ + --enable-libx264 \ + --enable-libx265 \ + --enable-lto=auto \ + --enable-lv2 \ + --enable-pic \ + --enable-postproc \ + --enable-pthreads \ + --enable-shared \ + --enable-vaapi \ + --enable-version3 \ + --optflags="-O3" \ + && make -j$(nproc) install \ + && apk del --no-cache .build-deps \ + && cd .. \ + && rm -r ffmpeg-${ffmpeg_ver} ffmpeg-${ffmpeg_ver}.tar.bz2 +COPY --from=builder /src/target/release/render_video /usr/local/bin/render_video + +ENTRYPOINT ["/usr/local/bin/render_video"] From d323915aed3ccb255e5f4a12b88e0cbe8637b95f Mon Sep 17 00:00:00 2001 From: Dominic Date: Mon, 20 May 2024 17:34:08 +0200 Subject: [PATCH 3/3] install fonts in docker --- Dockerfile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 69e9e1a..e8a79ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine AS builder +FROM alpine:3.19 AS builder RUN apk add --no-cache cargo @@ -10,13 +10,14 @@ RUN cargo build --release --no-default-features # ############################################## -FROM alpine +FROM alpine:3.19 ARG ffmpeg_ver=7.0 RUN apk add --no-cache \ dav1d fontconfig freetype harfbuzz librsvg libva lilv-libs opus svt-av1 x264-libs x265 \ - inkscape libgcc \ + font-noto inkscape libarchive-tools libgcc \ + # we install ffmpeg ourselves to get libsvtav1 support which is not part of the alpine package \ && apk add --no-cache --virtual .build-deps \ build-base \ dav1d-dev fontconfig-dev freetype-dev harfbuzz-dev librsvg-dev libva-dev lilv-dev opus-dev svt-av1-dev x264-dev x265-dev \ @@ -52,7 +53,16 @@ RUN apk add --no-cache \ && make -j$(nproc) install \ && apk del --no-cache .build-deps \ && cd .. \ - && rm -r ffmpeg-${ffmpeg_ver} ffmpeg-${ffmpeg_ver}.tar.bz2 + && rm -r ffmpeg-${ffmpeg_ver} ffmpeg-${ffmpeg_ver}.tar.bz2 \ + # we need Arial Black for the VideoAG logo \ + && wget -q https://www.freedesktop.org/software/fontconfig/webfonts/webfonts.tar.gz \ + && tar xfa webfonts.tar.gz \ + && cd msfonts \ + && for file in *.exe; do bsdtar xf "$file"; done \ + && install -Dm644 -t /usr/share/fonts/msfonts/ *.ttf *.TTF \ + && install -Dm644 -t /usr/share/licenses/msfonts/ Licen.TXT \ + && cd .. \ + && rm -r msfonts webfonts.tar.gz COPY --from=builder /src/target/release/render_video /usr/local/bin/render_video ENTRYPOINT ["/usr/local/bin/render_video"]