diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 2b4a8f4..0000000 --- a/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -**/target/ -23*/ -24*/ diff --git a/.forgejo/workflows/webhook.yml b/.forgejo/workflows/webhook.yml deleted file mode 100644 index 6dae2d0..0000000 --- a/.forgejo/workflows/webhook.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Trigger quay.io Webhook - -on: - push: - -jobs: - run: - runs-on: alpine-latest - steps: - - run: | - apk add ca-certificates curl - curl -v -X POST --data '{ - "commit": "${{forgejo.sha}}", - "ref": "${{forgejo.ref}}", - "default-branch": "main" - }' 'https://$token:${{secrets.quay_token}}@quay.io/webhooks/push/trigger/48d15dc7-ef9a-45bd-83e6-e1714c73dca6' diff --git a/Dockerfile b/Dockerfile index 62c3416..e8a79ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,26 @@ -FROM alpine:3.20 +FROM alpine:3.19 AS builder + +RUN apk add --no-cache cargo + +RUN mkdir /src +COPY . /src +WORKDIR /src + +RUN cargo build --release --no-default-features + +# ############################################## + +FROM alpine:3.19 ARG ffmpeg_ver=7.0 -RUN mkdir -p /usr/local/src/render_video -COPY LICENSE /usr/local/src/render_video/LICENSE -COPY Cargo.toml /usr/local/src/render_video/Cargo.toml -COPY Cargo.lock /usr/local/src/render_video/Cargo.lock -COPY src /usr/local/src/render_video/src -COPY assets /usr/local/src/render_video/assets - RUN apk add --no-cache \ dav1d fontconfig freetype harfbuzz librsvg libva lilv-libs opus svt-av1 x264-libs x265 \ 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 cargo pkgconf \ + 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 \ - # build the render_video project - && cargo install --path /usr/local/src/render_video --root /usr/local --no-default-features \ - && rm -rf ~/.cargo \ - # we install ffmpeg ourselves to get libsvtav1 support which is not part of the alpine package \ && wget -q https://ffmpeg.org/releases/ffmpeg-${ffmpeg_ver}.tar.bz2 \ && tar xfa ffmpeg-${ffmpeg_ver}.tar.bz2 \ && cd ffmpeg-${ffmpeg_ver} \ @@ -61,5 +63,6 @@ RUN apk add --no-cache \ && 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"]