mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-05 18:20:35 -08:00
Add nodriver to Gemini provider,
Add slim docker image with google-chrome usage, Add the new docker images to publish worklow, Update requirements.txt and pip requirements
This commit is contained in:
parent
6ce493d4df
commit
ea1448001d
21 changed files with 240 additions and 145 deletions
|
|
@ -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
|
||||
|
|
|
|||
68
docker/Dockerfile-slim
Normal file
68
docker/Dockerfile-slim
Normal file
|
|
@ -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
|
||||
12
docker/supervisor-api.conf
Executable file
12
docker/supervisor-api.conf
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
[program:g4f-api]
|
||||
priority=15
|
||||
command=python -m g4f.cli api
|
||||
directory=/app
|
||||
stopasgroup=true
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[program:g4f-gui]
|
||||
priority=15
|
||||
command=python -m g4f.cli gui
|
||||
command=python -m g4f.cli gui -debug
|
||||
directory=/app
|
||||
stopasgroup=true
|
||||
autostart=true
|
||||
|
|
|
|||
|
|
@ -47,17 +47,4 @@ stderr_logfile_maxbytes=50MB
|
|||
stdout_logfile_backups=5
|
||||
stderr_logfile_backups=5
|
||||
stdout_capture_maxbytes=50MB
|
||||
stderr_capture_maxbytes=50MB
|
||||
|
||||
[program:g4f-api]
|
||||
priority=15
|
||||
command=python -m g4f.cli api
|
||||
directory=/app
|
||||
stopasgroup=true
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs"
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_capture_maxbytes=50MB
|
||||
Loading…
Add table
Add a link
Reference in a new issue