summaryrefslogtreecommitdiffstats
path: root/docker/Dockerfile-slim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docker/Dockerfile-slim44
1 files changed, 6 insertions, 38 deletions
diff --git a/docker/Dockerfile-slim b/docker/Dockerfile-slim
index 0a09395b..04238144 100644
--- a/docker/Dockerfile-slim
+++ b/docker/Dockerfile-slim
@@ -1,9 +1,8 @@
-FROM python:bookworm
+FROM python:slim-bookworm
ARG G4F_VERSION
ARG G4F_USER=g4f
ARG G4F_USER_ID=1000
-ARG PYDANTIC_VERSION=1.8.1
ENV G4F_VERSION $G4F_VERSION
ENV G4F_USER $G4F_USER
@@ -12,60 +11,29 @@ ENV G4F_DIR /app
RUN apt-get update && apt-get upgrade -y \
&& apt-get install -y git \
- && apt-get install --quiet --yes --no-install-recommends \
- build-essential \
# Add user and user group
&& groupadd -g $G4F_USER_ID $G4F_USER \
&& useradd -rm -G sudo -u $G4F_USER_ID -g $G4F_USER_ID $G4F_USER \
&& mkdir -p /var/log/supervisor \
&& chown "${G4F_USER_ID}:${G4F_USER_ID}" /var/log/supervisor \
&& echo "${G4F_USER}:${G4F_USER}" | chpasswd \
- && python -m pip install --upgrade pip
+ && python -m pip install --upgrade pip \
+ && apt-get clean \
+ && rm --recursive --force /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER $G4F_USER_ID
WORKDIR $G4F_DIR
ENV HOME /home/$G4F_USER
-ENV PATH "${HOME}/.local/bin:${HOME}/.cargo/bin:${PATH}"
+ENV PATH "${HOME}/.local/bin:${PATH}"
# Create app dir and copy the project's requirements file into it
RUN mkdir -p $G4F_DIR
COPY requirements-min.txt $G4F_DIR
COPY requirements-slim.txt $G4F_DIR
-# Install rust toolchain
-RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
-
# Upgrade pip for the latest features and install the project's Python dependencies.
-RUN pip install --no-cache-dir -r requirements-min.txt \
- && pip install --no-cache-dir --no-binary setuptools \
- Cython==0.29.22 \
- setuptools \
- # Install PyDantic
- && pip install \
- -vvv \
- --no-cache-dir \
- --no-binary :all: \
- --global-option=build_ext \
- --global-option=-j8 \
- pydantic==${PYDANTIC_VERSION} \
- && cat requirements-slim.txt | xargs -n 1 pip install --no-cache-dir || true \
- # Remove build packages
- && pip uninstall --yes \
- Cython \
- setuptools
-
-USER root
-
-# Clean up build deps
-RUN rm --recursive --force "${HOME}/.rustup" \
- && rustup self uninstall -y \
- && apt-get purge --auto-remove --yes \
- build-essential \
- && apt-get clean \
- && rm --recursive --force /var/lib/apt/lists/* /tmp/* /var/tmp/*
-
-USER $G4F_USER_ID
+RUN cat requirements-slim.txt | xargs -n 1 pip install --no-cache-dir || true
# Copy the entire package into the container.
ADD --chown=$G4F_USER:$G4F_USER g4f $G4F_DIR/g4f \ No newline at end of file