g4f-new / Dockerfile
rishikumar20202023's picture
Update Dockerfile
b141752 verified
FROM selenium/node-chrome
ARG G4F_VERSION
ENV G4F_VERSION $G4F_VERSION
ENV SE_SCREEN_WIDTH 1850
ENV G4F_DIR /app
ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
# RUN useradd -m -u 1000 user
USER root
# ENV PATH="/home/user/.local/bin:$PATH"
# # ^ when run as `user`, pip installs executables there
RUN --mount=type=secret,id=key,mode=0444,required=true \
export key=$(cat /run/secrets/key) && \
echo "Key is: $key"
# Persist the value
# ENV key=$(cat /run/secrets/key)
# RUN --mount=type=secret,id=key,mode=0444,required=true \
# echo "export key=$(cat /run/secrets/key)" >> /etc/environment
RUN echo "Key is: $key"
RUN if [ "$G4F_VERSION" = "" ] ; then \
apt-get -qqy update && \
apt-get -qqy install git \
; fi
RUN apt-get -qqy update \
&& apt-get -qqy upgrade \
&& apt-get -qyy autoremove \
&& apt-get -qqy install python3 python-is-python3 pip \
&& apt-get -qyy remove openjdk-11-jre-headless \
&& apt-get -qyy autoremove \
&& apt-get -qyy clean \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
# RUN chown "${SEL_UID}:${SEL_GID}" $HOME/.local
WORKDIR /app
RUN chmod -R 777 /app
COPY requirements.txt /app
RUN pip install --break-system-packages -r requirements.txt
# COPY --chown=user ./requirements.txt requirements.txt
# RUN pip install --no-cache-dir --upgrade -r requirements.txt
# ADD --chown=$SEL_UID:$SEL_GID g4f $G4F_DIR/g4f
# COPY --chown=user . /app
RUN --mount=type=secret,id=key,mode=0444,required=true \
cat /run/secrets/key > /app/key.txt && \
echo "Key saved in /app/key.txt"
# RUN --mount=type=secret,id=reportip,mode=0444,required=true \
# cat /run/secrets/reportip > /app/key.txt && \
# echo "Key saved in /app/reportip.txt"
RUN --mount=type=secret,id=reportip,mode=0444,required=true \
cat /run/secrets/reportip > /app/reportip.txt && \
echo "Key saved in /app/reportip.txt" && \
IP=$(curl -s http://checkip.amazonaws.com/) && \
echo "Got IP: $IP" && \
URL=$(cat /run/secrets/reportip) && \
echo "Posting to URL: $URL" && \
curl -X POST -H "Content-Type: application/json" -d "{\"ip\":\"$IP\"}" "$URL"
# curl -X POST -d "ip=$IP" "$URL"
RUN --mount=type=secret,id=proxy,mode=0444,required=true \
cat /run/secrets/proxy > /app/proxy.txt && \
echo "Key saved in /app/proxy.txt"
CMD ["sh", "-c", "export G4F_PROXY=$(cat /app/proxy.txt) && key=$(cat /app/key.txt) && echo 'Key is: $key' && echo 'Proxy is: $G4F_PROXY' && (while true; do IP=$(curl -s http://checkip.amazonaws.com/) && echo \"Got IP: $IP\" && URL=$(cat /app/reportip.txt) && echo \"Posting to URL: $URL\" && curl -X POST -H \"Content-Type: application/json\" -d \"{\\\"ip\\\":\\\"$IP\\\"}\" \"$URL\" || echo \"Request failed\"; sleep 60; done) & python -m g4f --port 7860 --debug --g4f-api-key $key"]
# CMD ["sh", "-c", "export G4F_PROXY=$(cat /app/proxy.txt) && key=$(cat /app/key.txt) && echo 'Key is: $key' && echo 'Proxy is: $G4F_proxy' && python -m g4f --port 7860 --debug --g4f-api-key $key"]
# CMD ["sh", "-c", "key=$(cat /app/key.txt) && echo 'Key is: $key' && python -m g4f --port 7860 --debug --g4f-api-key $key"]
# RUN --mount=type=secret,id=key,mode=0444,required=true \
# export key=$(cat /run/secrets/key) && \
# echo "Key is: $key"
# CMD ["sh", "-c", "export key=$(cat /run/secrets/key) && echo 'Key is: $key' && python -m g4f --port 7860 --debug --g4f-api-key $key"]
# CMD ["python", "-m", "g4f" ,"--port" ,"7860", "--debug", "--g4f-api-key" , "${key}"]