diff options
author | H Lohaus <hlohaus@users.noreply.github.com> | 2023-12-06 12:02:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-06 12:02:41 +0100 |
commit | f962993b8dac225d85f9fbb59be188e263af1c0b (patch) | |
tree | ae153b027ad5a2679b4f1fde881d61cc0e1276b4 /docker | |
parent | ~ | g4f `v-0.1.9.1` (diff) | |
parent | Improve docker image (diff) | |
download | gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar.gz gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar.bz2 gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar.lz gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar.xz gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.tar.zst gpt4free-f962993b8dac225d85f9fbb59be188e263af1c0b.zip |
Diffstat (limited to '')
-rw-r--r-- | docker-compose.yml | 19 | ||||
-rw-r--r-- | docker/Dockerfile | 43 | ||||
-rwxr-xr-x | docker/supervisor.conf | 76 |
3 files changed, 127 insertions, 11 deletions
diff --git a/docker-compose.yml b/docker-compose.yml index 43aa6c02..8dfe1f35 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,15 @@ version: '3' services: - gpt4free-api: &gpt4free - image: gpt4free:latest + gpt4free: + image: ghcr.io/xtekky/gpt4free:latest + shm_size: 2gb build: context: . - dockerfile: Dockerfile - cache_from: - - gpt4free:latest - ports: - - '1337:1337' - command: api - gpt4free-gui: - <<: *gpt4free + dockerfile: docker/Dockerfile + volumes: + - .:/app ports: - '8080:80' - command: gui + - '1337:1337' + - '7900:7900'
\ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..0c52940d --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,43 @@ +FROM selenium/node-chrome + +ENV SE_SCREEN_WIDTH 1920 +ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret +ENV PYTHONUNBUFFERED 1 + +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/supervisor.conf /etc/supervisor/conf.d/selenium.conf + +# 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/supervisor.conf b/docker/supervisor.conf new file mode 100755 index 00000000..6d82f6c9 --- /dev/null +++ b/docker/supervisor.conf @@ -0,0 +1,76 @@ +[program:xvfb] +priority=0 +command=/opt/bin/start-xvfb.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/xvfb-stdout.log +stderr_logfile=/var/log/supervisor/xvfb-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:vnc] +priority=5 +command=/opt/bin/start-vnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/vnc-stdout.log +stderr_logfile=/var/log/supervisor/vnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:novnc] +priority=10 +command=/opt/bin/start-novnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/novnc-stdout.log +stderr_logfile=/var/log/supervisor/novnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:g4f-cli] +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 + +[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 |