summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2023-12-11 02:50:33 +0100
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2023-12-11 02:50:33 +0100
commitb2d02ed624f9354214228c3f4d5dcb1a74d792b3 (patch)
tree9b25c40faba70070869d5a260fabe7610e780435 /docker
parentAdd error classes (diff)
downloadgpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar.gz
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar.bz2
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar.lz
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar.xz
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.tar.zst
gpt4free-b2d02ed624f9354214228c3f4d5dcb1a74d792b3.zip
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile34
-rwxr-xr-xdocker/supervisor-gui.conf12
-rwxr-xr-xdocker/supervisor.conf13
3 files changed, 40 insertions, 19 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 66f7fd3c..d160fcac 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,13 +1,27 @@
FROM selenium/node-chrome
ENV SE_SCREEN_WIDTH 1850
-ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
ENV PYTHONUNBUFFERED 1
+ENV G4F_DIR /app
+ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
ARG G4F_VERSION
ENV G4F_VERSION ${G4F_VERSION}
+ARG G4F_USER
+ENV G4F_USER ${G4F_USER:-g4f}
+ARG G4F_USER_ID
+ENV G4F_USER_ID ${G4F_USER_ID:-1000}
+ARG G4F_NO_GUI
+ENV G4F_NO_GUI ${G4F_NO_GUI}
+ENV HOME /home/$G4F_USER
USER root
+# If docker compose, install git
+RUN if [ "$G4F_VERSION" = "" ] ; then \
+ apt-get -qqy update && \
+ apt-get -qqy install git \
+ ; fi
+
# Python packages
RUN apt-get -qqy update \
&& apt-get -qqy install \
@@ -22,24 +36,32 @@ RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
# Update entrypoint
COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf
+COPY docker/supervisor-gui.conf /etc/supervisor/conf.d/gui.conf
+
+# If no gui
+RUN if [ "$G4F_NO_GUI" ] ; then \
+ rm /etc/supervisor/conf.d/gui.conf \
+ ; fi
# Change background image
COPY docker/background.png /usr/share/images/fluxbox/ubuntu-light.png
# Switch user
-USER 1200
+RUN groupadd -g $G4F_USER_ID $G4F_USER
+RUN useradd -rm -G sudo -u $G4F_USER_ID -g $G4F_USER_ID $G4F_USER
+USER $G4F_USER_ID
# Set the working directory in the container.
-WORKDIR /app
+WORKDIR $G4F_DIR
# Copy the project's requirements file into the container.
-COPY requirements.txt /app/
+COPY requirements.txt $G4F_DIR
# Upgrade pip for the latest features and install the project's Python dependencies.
RUN pip install --upgrade pip && pip install -r requirements.txt
# Copy the entire package into the container.
-COPY g4f /app/g4f
+ADD --chown=$G4F_USER g4f $G4F_DIR/
# Expose ports
-EXPOSE 80 1337 \ No newline at end of file
+EXPOSE 8080 1337 \ No newline at end of file
diff --git a/docker/supervisor-gui.conf b/docker/supervisor-gui.conf
new file mode 100755
index 00000000..44273c67
--- /dev/null
+++ b/docker/supervisor-gui.conf
@@ -0,0 +1,12 @@
+[program:g4f-gui]
+priority=15
+command=python -m g4f.cli gui
+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 \ No newline at end of file
diff --git a/docker/supervisor.conf b/docker/supervisor.conf
index e76f9a6c..f0f01fd1 100755
--- a/docker/supervisor.conf
+++ b/docker/supervisor.conf
@@ -60,17 +60,4 @@ 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
-
-[program:g4f-gui]
-priority=15
-command=python -m g4f.cli gui
-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 \ No newline at end of file