summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile42
-rwxr-xr-xdocker/start-selenium-node.sh17
2 files changed, 59 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 00000000..354f66d1
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,42 @@
+FROM selenium/node-chrome
+
+ENV SE_SCREEN_WIDTH 1920
+ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret
+
+USER root
+
+# Python packages
+RUN apt-get -qqy update \
+ && apt-get -qqy install \
+ python3 \
+ python-is-python3 \
+ pip
+
+# Cleanup
+RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
+ && apt-get -qyy autoremove \
+ && apt-get -qyy clean
+
+# Update entrypoint
+COPY docker/start-selenium-node.sh /opt/bin/
+
+# Change background image
+COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png
+
+# Switch user
+USER 1200
+
+# Set the working directory in the container.
+WORKDIR /app
+
+# Copy the project's requirements file into the container.
+COPY requirements.txt /app/
+
+# 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
+
+# Expose ports
+EXPOSE 80 1337 \ No newline at end of file
diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh
new file mode 100755
index 00000000..a02d0e82
--- /dev/null
+++ b/docker/start-selenium-node.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Start the pulseaudio server
+pulseaudio -D --exit-idle-time=-1
+
+# Load the virtual sink and set it as default
+pacmd load-module module-virtual-sink sink_name=v1
+pacmd set-default-sink v1
+
+# Set the monitor of v1 sink to be the default source
+pacmd set-default-source v1.monitor
+
+rm -f /tmp/.X*lock
+
+# Start app servers
+python -m g4f.cli api &
+python -m g4f.cli gui \ No newline at end of file