diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1cbc770..8bcde13 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,15 +1 @@ -FROM zklcdc/go-bingai-pass:latest - -RUN wget https://github.com/Harry-zklcdc/go-proxy-bingai/releases/latest/download/go-proxy-bingai-linux-amd64.tar.gz -O go-proxy-bingai-linux-amd64.tar.gz && \ - tar -zxvf go-proxy-bingai-linux-amd64.tar.gz && \ - chmod +x go-proxy-bingai - -RUN wget https://github.com/Harry-zklcdc/go-bingai-pass/releases/latest/download/go-bingai-pass-linux-amd64.tar.gz -O go-bingai-pass-linux-amd64.tar.gz && \ - tar -zxvf go-bingai-pass-linux-amd64.tar.gz && \ - chmod +x go-bingai-pass - -RUN rm go-bingai-pass-linux-amd64.tar.gz go-proxy-bingai-linux-amd64.tar.gz - -COPY supervisor.conf /etc/supervisor/conf.d/supervisor.conf - -CMD [ "/usr/bin/bash", "-c", "while true;do sleep 3600;done" ] \ No newline at end of file +FROM zklcdc/go-bingai-pass:latest \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 02348fe..2c02396 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -4,8 +4,5 @@ services: context: . dockerfile: Dockerfile no_cache: true - environment: - - HEADLESS=false - - PASS_TIMEOUT=5 ports: - 7860:7860 diff --git a/.devcontainer/supervisor.conf b/.devcontainer/supervisor.conf deleted file mode 100644 index 0162c2a..0000000 --- a/.devcontainer/supervisor.conf +++ /dev/null @@ -1,46 +0,0 @@ -[supervisord] -logfile=/var/log/supervisor/supervisord.log -logfile_maxbytes=10MB -logfile_backups=10 -loglevel=info -pidfile=supervisord.pid -nodaemon=true -childlogdir=/var/log/supervisor - -[inet_http_server] -port=127.0.0.1:9005 - -[rpcinterface:supervisor] -supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface - -[supervisorctl] -serverurl=http://127.0.0.1:9005 - -[program:xvfb] -priority=0 -environment=START_XVFB=true -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:go-bingai-pass] -command=/app/go-bingai-pass -directory=/app -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr -autostart=true -autorestart=true -startsecs=5 -stopwaitsecs=5 -killasgroup=true \ No newline at end of file diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index f97c45a..aa68fa9 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -35,7 +35,7 @@ jobs: - name: Build and push uses: docker/build-push-action@v4 with: - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 context: . file: ./Dockerfile push: true diff --git a/Dockerfile b/Dockerfile index 455d2ba..009c511 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,65 +7,20 @@ WORKDIR /app USER root -RUN apt-get update && apt-get install -y --no-install-recommends curl wget gnupg2 ca-certificates supervisor +RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates -# Install xcfb -RUN apt-get install -y --no-install-recommends xvfb xauth pulseaudio - -# Install locales -RUN apt-get install -y --no-install-recommends language-pack-en tzdata locales && \ - locale-gen en_US.UTF-8 - -# Install fluxbox -RUN apt-get install -y --no-install-recommends fluxbox eterm hsetroot feh - -# Install Edge -RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \ - && echo "deb https://packages.microsoft.com/repos/edge stable main" >> /etc/apt/sources.list.d/microsoft-edge.list \ - && apt-get update -qqy \ - && wget https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_116.0.1938.81-1_amd64.deb -O /tmp/microsoft-edge-stable_amd64.deb \ - && apt-get install -qqy --no-install-recommends /tmp/microsoft-edge-stable_amd64.deb \ - && rm /tmp/microsoft-edge-stable_amd64.deb -COPY wrap_edge_binary /opt/bin/wrap_edge_binary -RUN /opt/bin/wrap_edge_binary - -RUN curl -L https://github.com/Harry-zklcdc/go-bingai-pass/releases/latest/download/go-bingai-pass-linux-amd64.tar.gz -o go-bingai-pass-linux-amd64.tar.gz && \ - tar -zxvf go-bingai-pass-linux-amd64.tar.gz && \ +RUN curl -L https://github.com/Harry-zklcdc/go-bingai-pass/releases/latest/download/go-bingai-pass-linux-${TARGETARCH}.tar.gz -o go-bingai-pass-linux.tar.gz && \ + tar -zxvf go-bingai-pass-linux.tar.gz && \ chmod +x go-bingai-pass RUN apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ - rm go-bingai-pass-linux-amd64.tar.gz - -COPY start-xvfb.sh /opt/bin/start-xvfb.sh -COPY supervisor.conf /etc/supervisor/conf.d/supervisor.conf - -# RUN groupadd -g $GBP_USER_ID $GBP_USER -# RUN useradd -rm -G sudo -u $GBP_USER_ID -g $GBP_USER_ID $GBP_USER - -RUN mkdir -p /tmp/edge /var/run/supervisor /var/log/supervisor -RUN chown "${GBP_USER_ID}:${GBP_USER_ID}" /var/run/supervisor /var/log/supervisor -RUN chown -R "${GBP_USER_ID}:${GBP_USER_ID}" /app /tmp/edge -RUN chmod 777 /tmp + rm go-bingai-pass-linux.tar.gz USER $GBP_USER -ENV SCREEN_WIDTH=1360 -ENV SCREEN_HEIGHT=1020 -ENV SCREEN_DEPTH=24 -ENV SCREEN_DPI=96 -ENV SE_START_XVFB=true -ENV DISPLAY=:99.0 -ENV DISPLAY_NUM=99 - ENV PORT=7860 -ENV HEADLESS=false -ENV BROWSER_BINARY=/usr/bin/microsoft-edge -# ENV PASS_TIMEOUT=10 -# ENV CHROME_PATH=/opt/google/chrome -ENV XDG_CONFIG_HOME=/tmp/edge -ENV XDG_CACHE_HOME=/tmp/edge EXPOSE 7860 -CMD /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf \ No newline at end of file +CMD /app/go-bingai-pass \ No newline at end of file diff --git a/start-xvfb.sh b/start-xvfb.sh deleted file mode 100755 index 270af04..0000000 --- a/start-xvfb.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -if [ "${START_XVFB:-$SE_START_XVFB}" = true ] ; then - export GEOMETRY="${SCREEN_WIDTH}""x""${SCREEN_HEIGHT}""x""${SCREEN_DEPTH}" - - rm -f /tmp/.X*lock - - # Command reference - # http://manpages.ubuntu.com/manpages/focal/man1/xvfb-run.1.html - # http://manpages.ubuntu.com/manpages/focal/man1/Xvfb.1.html - # http://manpages.ubuntu.com/manpages/focal/man1/Xserver.1.html - /usr/bin/xvfb-run --server-num=${DISPLAY_NUM} \ - --listen-tcp \ - --server-args="-screen 0 ${GEOMETRY} -fbdir /var/tmp -dpi ${SCREEN_DPI} -listen tcp -noreset -ac +extension RANDR" \ - /usr/bin/fluxbox -display ${DISPLAY} -else - echo "Xvfb and Fluxbox won't start. Chrome/Firefox/Edge can only run in headless mode. Remember to set the 'headless' flag in your test." -fi \ No newline at end of file diff --git a/wrap_edge_binary b/wrap_edge_binary deleted file mode 100755 index aea41c8..0000000 --- a/wrap_edge_binary +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -WRAPPER_PATH=$(readlink -f /usr/bin/microsoft-edge) -BASE_PATH="$WRAPPER_PATH-base" -mv "$WRAPPER_PATH" "$BASE_PATH" - -cat > "$WRAPPER_PATH" <<_EOF -#!/bin/bash - -# umask 002 ensures default permissions of files are 664 (rw-rw-r--) and directories are 775 (rwxrwxr-x). -umask 002 - -# Debian/Ubuntu seems to not respect --lang, it instead needs to be a LANGUAGE environment var -# See: https://stackoverflow.com/a/41893197/359999 -for var in "\$@"; do - if [[ \$var == --lang=* ]]; then - LANGUAGE=\${var//--lang=} - fi -done - -# Set language environment variable -export LANGUAGE="\$LANGUAGE" - -# Note: exec -a below is a bashism. -exec -a "\$0" "$BASE_PATH" --no-sandbox "\$@" -_EOF -chmod +x "$WRAPPER_PATH" \ No newline at end of file