diff options
author | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-11-17 11:06:37 +0100 |
---|---|---|
committer | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-11-17 11:06:37 +0100 |
commit | ea1448001df9c66f05a52618eb3e40a88df5efe8 (patch) | |
tree | 3f113ea8beb7c43920871019512aeb8de9d1b4f7 /docker/Dockerfile | |
parent | Fix api streaming, fix AsyncClient (#2357) (diff) | |
download | gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar.gz gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar.bz2 gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar.lz gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar.xz gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.tar.zst gpt4free-ea1448001df9c66f05a52618eb3e40a88df5efe8.zip |
Diffstat (limited to '')
-rw-r--r-- | docker/Dockerfile | 1 | ||||
-rw-r--r-- | docker/Dockerfile-slim | 68 |
2 files changed, 69 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index eb03390c..625312e2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -40,6 +40,7 @@ RUN apt-get -qqy update \ # Update entrypoint COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf +COPY docker/supervisor-api.conf /etc/supervisor/conf.d/api.conf COPY docker/supervisor-gui.conf /etc/supervisor/conf.d/gui.conf # If no gui diff --git a/docker/Dockerfile-slim b/docker/Dockerfile-slim new file mode 100644 index 00000000..6c0afc64 --- /dev/null +++ b/docker/Dockerfile-slim @@ -0,0 +1,68 @@ +FROM python: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 +ENV G4F_USER_ID $G4F_USER_ID +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 + +USER $G4F_USER_ID +WORKDIR $G4F_DIR + +ENV HOME /home/$G4F_USER +ENV PATH "${HOME}/.local/bin:${HOME}/.cargo/bin:${PATH}" + +# Create app dir and copy the project's requirements file into it +RUN mkdir -p $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 python -m pip install --upgrade pip \ + && pip install --no-cache-dir \ + Cython==0.29.22 \ + setuptools \ + # Install PyDantic + && pip install \ + -vvv \ + --no-cache-dir \ + --no-binary pydantic \ + --global-option=build_ext \ + --global-option=-j8 \ + pydantic==${PYDANTIC_VERSION} \ + && pip install --no-cache-dir -r requirements-slim.txt \ + # Remove build packages + && pip uninstall --yes \ + Cython \ + setuptools + +USER root + +# Clean up build deps +RUN 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 + +# Copy the entire package into the container. +ADD --chown=$G4F_USER:$G4F_USER g4f $G4F_DIR/g4f
\ No newline at end of file |