diff --git a/.dockerignore b/.dockerignore
index c1c9f4dc4be649d2be5c7c93374877e3fa512505..9670f9ce603217a83462f5b7d25d2941acdad773 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1 +1,4 @@
 .git*
+Dockerfile
+.Dockerfile.swp
+LICENSE
diff --git a/Dockerfile b/Dockerfile
index 661bf92f020f36c0c8e29862640650f33ea95a94..4a7a41a55754c7515b28908b46e579ee73c0b0d0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,15 @@
-FROM python:3.8
+FROM python:3.8.12-slim-bullseye
 
 ARG with_models=false
 
 WORKDIR /app
 
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update -qq \
+  && apt-get -qqq install --no-install-recommends -y libicu-dev pkg-config gcc g++ \
+  && apt-get clean \
+  && rm -rf /var/lib/apt
+
 RUN pip install --upgrade pip
 
 COPY . .
@@ -17,7 +23,8 @@ RUN if [ "$with_models" = "true" ]; then  \
     fi
 
 # Install package from source code
-RUN pip install .
+RUN pip install . \
+  && pip cache purge
 
 EXPOSE 5000
-ENTRYPOINT [ "libretranslate", "--host", "0.0.0.0" ]
+ENTRYPOINT [ "/home/worker/.local/bin/libretranslate", "--host", "0.0.0.0" ]