diff --git a/Dockerfile b/Dockerfile
index e8a79cace2207b453b87f43dce72e5bb6ecf9471..aa3206e1b45e521b113a81caa52e5efd436b5f0c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,26 +1,23 @@
-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 \
+		build-base cargo pkgconf \
 		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 \
+ # 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} \
@@ -63,6 +60,5 @@ 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"]