This docker build file is a fork of romancin's rclonebrowser docker build that provides rclone with a graphical interface using the X11 VNC web-interface. The problem is that neither rclone nor rclonebrowser provide an easy way to schedule periodic synchronizations between remotes. There are multiple forks of rclonebrowswer that address the issue by building on top of rclonebrowser and adding a way to monitor local via notifications as well as perform periodic synchronization with remote mounts. The forks are typically just a derivation from rclonebrowser such that they have the same requirements and build requirements as the original rclonebrowser and hence do not require too many modifications except changing the build source and fixing the obsolete build system.
The source code can be checked out from:
https://svn.grimore.org/docker/build/rclonebrowser-docker/
using subversion:
svn co https://svn.grimore.org/docker/build/rclonebrowser-docker/
After that the source can be built by changing to the rclonebrowser-docker
and issuing the command:
docker build -t TAG .
where:
TAG
represents a tag to set on the built image (ie: redis:latest
)
After rclonebrowser is built, a container can be created and ran either via docker run
or deployed within the swarm with docker stack deploy
.
The Dockerfile
is the only file changed between the original romancin's rclonebrowser docker build and the current one with the only highlights being the change of source to point towards ProminentRetail's repo and then knocking out the creation of the favicons to be displayed on the webpage. Another change that has been made is to change the URL that provides the rclone
binary from the official webpage that is now broken on the rclonebrowser docker build.
Similarly, the Dockerfile
is re-arranged a bit in order to split up the steps in more comprehensive build milestones, such as retrieving rclone
and building rclonebrowser
.
# # RcloneBrowser Dockerfile # FROM jlesage/baseimage-gui:alpine-3.12-glibc # Define build arguments ARG RCLONE_VERSION=v1.59.2 # Define environment variables ENV ARCH=amd64 # Define working directory. WORKDIR /tmp # Install Rclone Browser dependencies RUN apk --no-cache add \ ca-certificates \ fuse \ wget \ qt5-qtbase \ qt5-qtbase-x11 \ libstdc++ \ libgcc \ dbus \ xterm && \ cd /tmp && \ wget https://downloads.rclone.org/${RCLONE_VERSION}/rclone-${RCLONE_VERSION}-linux-${ARCH}.zip && \ unzip /tmp/rclone-${RCLONE_VERSION}-linux-${ARCH}.zip && \ mv /tmp/rclone-*-linux-${ARCH}/rclone /usr/bin && \ rm -r /tmp/rclone* RUN apk add --no-cache --virtual=build-dependencies \ build-base \ cmake \ make \ gcc \ git \ qt5-qtbase qt5-qtmultimedia-dev qt5-qttools-dev && \ git clone https://codeberg.org/ProminentRetail/Rclone-Browser.git /tmp && \ mkdir /tmp/build && \ cd /tmp/build && \ cmake .. && \ cmake --build . && \ ls -l /tmp/build && \ cp /tmp/build/build/rclone-browser /usr/bin && \ apk del --purge build-dependencies && \ rm -rf /tmp/* # Maximize only the main/initial window. RUN \ sed-patch 's/<application type="normal">/<application type="normal" title="Rclone Browser">/' \ /etc/xdg/openbox/rc.xml # Generate and install favicons / do not attempt due to node packages obsoletion. #RUN APP_ICON_URL=https://github.com/rclone/rclone/raw/master/graphics/logo/logo_symbol/logo_symbol_color_512px.png && \ # install_app_icon.sh "$APP_ICON_URL" # Add files. COPY rootfs/ / COPY VERSION / # Set environment variables. ENV APP_NAME="RcloneBrowser" \ S6_KILL_GRACETIME=8000 # Define mountable directories. VOLUME ["/config"] VOLUME ["/media"] # Metadata. LABEL \ org.label-schema.name="rclonebrowser" \ org.label-schema.description="Docker container for RcloneBrowser" \ org.label-schema.version="unknown" \ org.label-schema.vcs-url="https://github.com/romancin/rclonebrowser-docker" \ org.label-schema.schema-version="1.0"