janeczku / docker-dropbox

:whale: Dropbox in a Docker image. This works.
MIT License
150 stars 129 forks source link

Dropbox not working #40

Open angry-master-yoda opened 4 years ago

angry-master-yoda commented 4 years ago

Yesterday, the dropbox in the container was updated to version 85.4.155. And it does not start anymore. CentOS 7. Error: ImportError: libatomic.so.1: cannot open shared object file: No such file or directory.

Detailed: !! dropbox: fatal python exception: ['Traceback (most recent call last):\n', ' File "dropbox/client/main.pyc", line 7919, in main\n', ' File "dropbox/client/main.pyc", line 7843, in main_startup\n', ' File "dropbox/client/main.pyc", line 942, in init\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 147, in make_default_file_system\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 99, in init\n', ' File "dropbox/sync_engine_boundary/factory.pyc", line 118, in _initialize_classes\n', ' File "dropbox/sync_engine/nucleus/classic_client/sync_engine.pyc", line 276, in \n', ' File "dropbox/sync_engine/nucleus/classic_client/thin_adapter/in_proc.pyc", line 98, in \n', ' File "dropbox/sync_engine/nucleus/classic_client/wrapped_thin_client.pyc", line 26, in \n', ' File "dropbox/sync_engine/nucleus/thin_client/client.pyc", line 28, in \n', ' File "dropbox/foundation/metrics/amp/remote_sink.pyc", line 10, in \n', 'ImportError: libatomic.so.1: cannot open shared object file: No such file or directory\n'] (error 3)

thomashilzendegen commented 4 years ago

Until my PR may get merged you can use my fork and build your own image (just replace janeczku/dropbox with the used tag dropbox when creating the container after building the image):

docker build --force-rm --tag dropbox https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix

angry-master-yoda commented 4 years ago

Big thanks. Finally, there was a reason to study Docker :-).

angry-master-yoda commented 4 years ago

Hmm...

$ docker build --force-rm --tag dropbox https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix unable to prepare context: unable to 'git clone' to temporary context directory: error initializing submodules: ...

$ git clone https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix Cloning into 'docker-dropbox.git#libatomic-fix'... fatal: https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix/info/refs not valid: is this a git repository?

What am I doing wrong?

thomashilzendegen commented 4 years ago

$ docker build --force-rm --tag dropbox https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix What am I doing wrong?

Nothing... This works for me. Maybe your git version is too old? Mine is 2.20.1. As far as I know it should be at least 2.10. Could you check it with git --version and update if needed?

leighorf commented 4 years ago

I'm getting an error due to a PGP key not being able to be retrieved. This is from a CentOS 7.7 machine.

docker logs --follow agitated_wing Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.i9oTOsQwgG --no-auto-check-trustdb --trust-model always --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-stretch-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-stretch-security-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-stretch-stable.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg --keyring /etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg --keyserver pgp.mit.edu --recv-keys 1C61A2656FB57B7E4DE0F4C1FC918B335044912E gpg: requesting key 5044912E from hkp server pgp.mit.edu gpgkeys: key 1C61A2656FB57B7E4DE0F4C1FC918B335044912E can't be retrieved gpg: no valid OpenPGP data found. gpg: Total number processed: 0

Removing intermediate container 207e05067524 The command '/bin/sh -c echo 'deb http://linux.dropbox.com/debian jessie main' > /etc/apt/sources.list.d/dropbox.list && apt-key adv --keyserver pgp.mit.edu --recv-keys 1C61A2656FB57B7E4DE0F4C1FC918B335044912E && apt-get -qqy update && apt-get -qqy install ca-certificates curl python-gpgme libatomic1 dropbox && apt-get -qqy autoclean && rm -rf /var/lib/apt/lists/ /tmp/ /var/tmp/* && groupadd dropbox && useradd -m -d /dbox -c "Dropbox Daemon Account" -s /usr/sbin/nologin -g dropbox dropbox' returned a non-zero code: 2

thomashilzendegen commented 4 years ago

I'm getting an error due to a PGP key not being able to be retrieved:

I got this too from time to time. I just repeated the build until it worked.

angry-master-yoda commented 4 years ago

On windows (I'm at work)...

git --version git version 2.24.0.windows.1

git clone https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix Cloning into 'docker-dropbox.git#libatomic-fix'... fatal: unable to access 'https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix/': The requested URL returned error: 400

leighorf commented 4 years ago

I'm getting an error due to a PGP key not being able to be retrieved:

I got this too from time to time. I just repeated the build until it worked.

Yeah it looks like the pgp.mit.edu keyserver is down, when I try to retrieve the key manually it gives "The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later."

thomashilzendegen commented 4 years ago

git clone https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix

When cloning by yourself you should omit the branch part (#libatomic-fix) and checkout manually after cloning via git checkout libatomic-fix (the hash writing is only used by the docker command).

angry-master-yoda commented 4 years ago

I know. I decided to try after failed "docker build ...". Cloning an entire repository works everywhere.

leighorf commented 4 years ago

OK the MIT keyserver finally came back on line. But now this:

Step 8/14 : RUN mkdir -p /opt/dropbox && mv /dbox/.dropbox-dist/dropbox-lnx* /opt/dropbox/ && mv /dbox/.dropbox-dist/dropboxd /opt/dropbox/ && mv /dbox/.dropbox-dist/VERSION /opt/dropbox/ && rm -rf /dbox/.dropbox-dist && install -dm0 /dbox/.dropbox-dist && chmod u-w /dbox && chmod o-w /tmp && chmod g-w /tmp && mv /usr/bin/dropbox /usr/bin/dropbox-cli ---> Running in 45e372403c3d

mv: cannot remove '/dbox/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/ACKNOWLEDGEMENTS': No such file or directory mv: cannot remove '/dbox/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/PyQt5.QtCore.cpython-37m-x86_64-linux-gnu.so': No such file or directory mv: cannot remove '/dbox/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/PyQt5.QtDBus.cpython-37m-x86_64-linux-gnu.so': No such file or directory mv: cannot remove '/dbox/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/PyQt5.QtGui.cpython-37m-x86_64-linux-gnu.so': No such file or directory mv: cannot remove '/dbox/.dropbox-dist/dropbox-lnx.x86_64-85.4.155/PyQt5.QtNetwork.cpython-37m-x86_64-linux-gnu.so': No such file or directory [a whole lot more "mv: cannot remove" errors]

Removing intermediate container 45e372403c3d The command '/bin/sh -c mkdir -p /opt/dropbox && mv /dbox/.dropbox-dist/dropbox-lnx* /opt/dropbox/ && mv /dbox/.dropbox-dist/dropboxd /opt/dropbox/ && mv /dbox/.dropbox-dist/VERSION /opt/dropbox/ && rm -rf /dbox/.dropbox-dist && install -dm0 /dbox/.dropbox-dist && chmod u-w /dbox && chmod o-w /tmp && chmod g-w /tmp && mv /usr/bin/dropbox /usr/bin/dropbox-cli' returned a non-zero code: 1

I'm a Docker novice - not sure how to recover here.

Jorixine commented 4 years ago

hey any news about fixing the main build ?

angry-master-yoda commented 4 years ago

This works for me. Maybe your git version is too old? Mine is 2.20.1. As far as I know it should be at least 2.10.

git version 1.8.3.1 (CentOS Linux release 7.7.1908 (Core)). Is there another solution?

thomashilzendegen commented 4 years ago

Is there another solution?

Ok, just clone it manually with git clone https://github.com/thomashilzendegen/docker-dropbox.git and then switch the branch with git checkout libatomic-fix. Then run docker build -t dropbox .. Then your own image should be created.

Jorixine commented 4 years ago

has anyone been able to build with Thomas recomendations ? I am struggling to get it done...

it keeps complaining about the keys:

gpg: requesting key 5044912E from hkp server pgp.mit.edu gpgkeys: key 1C61A2656FB57B7E4DE0F4C1FC918B335044912E can't be retrieved gpg: no valid OpenPGP data found. gpg: Total number processed: 0

---- EDIT ---- So I fixed the keys error by replacing the pgp.mit.edu with: hkp://pool.sks-keyservers.net:80

Image built OK.

Now the issues I am getting are inside the container when running it. Permissions issues with /dbox/.dropbox and /dbox/Dropbox... It is not being able to set permissions.

~/tmp/git/docker-dropbox$ docker start dropbox ; docker logs dropbox --follow
dropbox
**usermod: Failed to change ownership of the home directorychown: cannot read directory '/dbox/.dropbox': Permission denied
chown: cannot read directory '/dbox/Dropbox': Permission denied
chmod: changing permissions of '/dbox/Dropbox': Permission denied**
Checking for latest Dropbox version...
Latest   : 85.4.155
Installed: 85.4.155
Dropbox is up-to-date
Starting dropboxd (85.4.155)...
dropbox: locating interpreter
!! dropbox: failed to create log file (Permission denied)!
dropbox: initializing
dropbox: initializing python 3.7.2
dropbox: setting program path '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/dropbox'
dropbox: setting home path '/opt/dropbox/dropbox-lnx.x86_64-85.4.155'
dropbox: setting python path '/opt/dropbox/dropbox-lnx.x86_64-85.4.155:/opt/dropbox/dropbox-lnx.x86_64-85.4.155/python-packages-37.zip'
dropbox: python initialized
dropbox: running dropbox
dropbox: setting args
dropbox: applying overrides
dropbox: running main script
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._constant_time.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._openssl.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/cryptography.hazmat.bindings._padding.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/psutil._psutil_linux.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/psutil._psutil_posix.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/linuxffi.pthread._linuxffi_pthread.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/cpuid.compiled._cpuid.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/apex._apex.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/tornado.speedups.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/linuxffi.resolv.compiled._linuxffi_resolv.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/librsyncffi.compiled._librsyncffi.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/linuxffi.sys.compiled._linuxffi_sys.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/posixffi.libc._posixffi_libc.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-85.4.155/linuxffi.gnu.compiled._linuxffi_gnu.cpython-37m-x86_64-linux-gnu.so'
**Couldn't start Dropbox.
This is usually because of a permissions error. Storing your home folder on a network share can also cause an error.
Get more help at https://www.dropbox.com/c/help/permissions_error
Please contact Dropbox support with the following info for help:
/var/tmp/dropbox_errori_zrd0pp.txt**

I see that the 'run' script sets this permissions, but I can't understand why its not working as it should... I created the image by running: docker create --restart=always --name=dropbox -v /home/MYHOME/Dropbox:/dbox/Dropbox -v /home/MYHOME/.dropbox:/dbox/.dropbox -e DBOX_UID=1000 -e DBOX_GID=1001 dropbox

I remember having to put GID 0 before this issue to get it syncing... but still not working with that...

I am a complete noob with docker, and I would like to troubleshoot the error, but of course the container dies / restart.

Any help ?

Thanks!

Jorixine commented 4 years ago

Well guys, I fixed the permissions issue as well...

When giving the volumes path, add a :Z at the end... Like this: -v /home/USER/Dropbox:/dbox/Dropbox:Z

I got rid of the permissions issues in the shared directories by adding that.

In case you had issues with the image creation and permissions, with my last two posts you should be able to fix it.

Thanks!

donnlee commented 4 years ago

I'm having an issue where file syncing stops after about 12 hours. Usually after 11pm local time (US Pacific). No errors in docker logs <container-id> Restarting the container gets syncing working again.

leighorf commented 4 years ago

I think I'm done with dropbox forever. I managed to get a build to go by modifying the Dockerfile but then I ran back into the "UnicodeDecodeError" problem when I type dropbox status that I couldn't fix. Also, the permissions issue on those shared libraries still requires a "docker exec chmod" type solution. It sucks but dropbox is just crap for Linux any more. I am looking into nextcloud.

donnlee commented 4 years ago

This is indeed very sad. My use case requires a smartphone app that can play video files. Seems nextcloud doesn't support that. My current thought is to use Dropbox on a Windows machine. Argg

cvrooman commented 4 years ago

If you are having issues with the "pgp.mit.edu" keyserver, try using "hkp://pool.sks-keyservers.net:80" instead. That server seems to be more reliable.

donnlee commented 4 years ago

Yeah, I got past the pgp key server issue by finding another "mirror" key server.

The problem I had was with file syncing stopping (and no errors logged) after a few hours and container needed to be restarted. So I had the idea of just restarting the container every 4 hours, but then one of the dropbox folders got into an inconsistent state: The folder was renamed "irreconcilable" or something similar, and did not self-heal. Pretty dicey.

So now I have Dropbox on Windows (yuck) serving a dropbox folder with NFS, and my linux machine as NFS client mounting that dropbox folder. Syncing is OK again, but for how long...

mundo1979 commented 4 years ago

The UnicodeDecode error is due to the Docker instance not having a locale set. To fix it without having to change the dropbox-cli file:

Now Python has no character encoding issues as it will use UTF-8.

Here is my version:

RUN apt-get -qqy update \ && apt-get -qqy upgrade \ && apt-get -qqy install gnupg ca-certificates curl python-gpgme python3-gpg libatomic1 locales locales-all \ && echo 'deb http://linux.dropbox.com/debian stretch main' > /etc/apt/sources.list.d/dropbox.list \ && apt-key adv --keyserver ipv4.pool.sks-keyservers.net --recv-keys 1C61A2656FB57B7E4DE0F4C1FC918B335044912E \ && apt-get -qqy update \ && sed --in-place '/en_US.UTF-8/s/^# //' /etc/locale.gen \

Note 'ca-certificates' dependency is required for 'dropbox start -i' to succeed

# From 'How do I add or remove Dropbox from my Linux repository?' -
&& apt-get -qqy install dropbox \
# Perform image clean up.
&& apt-get -qqy autoclean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
# Create service account and set permissions.
&& groupadd dropbox \
&& useradd -m -d /dbox -c "Dropbox Daemon Account" -s /usr/sbin/nologin -g dropbox dropbox

ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8

Change en_US to whatever locale your system uses.

leighorf commented 4 years ago

It's clear to me that janeczku has abandoned this project, as he hasn't changed anything on the main branch in over three years.

Someone really needs to fork this and incorporate all these pending changes.

tomp61 commented 4 years ago

@adamkdean (for #38) and @thomashilzendegen (here) have both created forks to address the recent failures.

leighorf commented 4 years ago

Indeed, there are 100 forks, LOL. I am kind of a github newbie. It would be nice however to know which fork is the most up to date with the outstanding issues.

angry-master-yoda commented 4 years ago

It's clear to me that janeczku has abandoned this project, as he hasn't changed anything on the main branch in over three years.

@thomashilzendegen, can you create another hub on dockerhub based on yor fork?

otherguy commented 4 years ago

I have published a fork: https://hub.docker.com/r/otherguy/dropbox/

(GitHub repo here: https://github.com/otherguy/docker-dropbox)

I also updated to the latest debian:buster base image and fixed several issues.

otooi commented 4 years ago

This is work for me.

git clone https://github.com/thomashilzendegen/docker-dropbox.git;
git checkout libatomic-fix;
cd docker-dropbox;

Changes key server address in DockerFile. vi DockerFile;

/bin/sh -c echo 'deb http://linux.dropbox.com/debian jessie main' > /etc/apt/sources.list.d/dropbox.list    \
&& apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 1C61A2656FB57B7E4DE0F4C1FC918B335044912E    && apt-get -qqy update  && apt-get -qqy install ca-certificates curl python-gpgme libatomic1 dropbox    && apt-get -qqy autoclean   && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*    && groupadd dropbox     \
&& useradd -m -d /dbox -c "Dropbox Daemon Account" -s /usr/sbin/nologin -g dropbox dropbox

and then build.

docker build --force-rm --tag dropbox .
docker create --restart=always --name=dropbox -v /home/user/Dropbox:/dbox/Dropbox:Z -v /home/user/.dropbox:/dbox/.dropbox:Z -e DBOX_UID=500 -e DBOX_GID=500 -e TZ=Asia/Seoul -e LC_CTYPE=C.UTF-8 dropbox
Joshfindit commented 4 years ago

Same on 86.4.146

I'm proceeding with a fork. Following error dump is just in case it helps someone else

sudo docker run --name=dropbox janeczku/dropbox
DBOX_UID variable not specified, defaulting to dropbox user id (1000)
DBOX_GID variable not specified, defaulting to dropbox user group id (1000)
Checking for latest Dropbox version...
Latest   : 86.4.146
Installed: 11.4.21
Downloading Dropbox v86.4.146...
######################################################################## 100.0%
Installing new version...
Dropbox updated to v86.4.146
Starting dropboxd (86.4.146)...
dropbox: locating interpreter
!! dropbox: failed to create log file (Permission denied)!
dropbox: initializing
dropbox: initializing python 3.7.2
dropbox: setting program path '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/dropbox'
dropbox: setting home path '/opt/dropbox/dropbox-lnx.x86_64-86.4.146'
dropbox: setting python path '/opt/dropbox/dropbox-lnx.x86_64-86.4.146:/opt/dropbox/dropbox-lnx.x86_64-86.4.146/python-packages-37.zip'
dropbox: python initialized
dropbox: running dropbox
dropbox: setting args
dropbox: applying overrides
dropbox: running main script
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/cryptography.hazmat.bindings._constant_time.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/cryptography.hazmat.bindings._openssl.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/cryptography.hazmat.bindings._padding.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/psutil._psutil_linux.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/psutil._psutil_posix.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/linuxffi.pthread._linuxffi_pthread.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/cpuid.compiled._cpuid.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/apex._apex.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/tornado.speedups.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/linuxffi.resolv.compiled._linuxffi_resolv.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/librsyncffi.compiled._librsyncffi.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/linuxffi.sys.compiled._linuxffi_sys.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/posixffi.libc._posixffi_libc.cpython-37m-x86_64-linux-gnu.so'
dropbox: load fq extension '/opt/dropbox/dropbox-lnx.x86_64-86.4.146/linuxffi.gnu.compiled._linuxffi_gnu.cpython-37m-x86_64-linux-gnu.so'
Traceback (most recent call last):
  File "dropbox/client/main.pyc", line 7938, in main
  File "dropbox/client/main.pyc", line 7862, in main_startup
  File "dropbox/client/main.pyc", line 946, in __init__
  File "dropbox/sync_engine_boundary/factory.pyc", line 147, in make_default_file_system
  File "dropbox/sync_engine_boundary/factory.pyc", line 99, in __init__
  File "dropbox/sync_engine_boundary/factory.pyc", line 118, in _initialize_classes
  File "dropbox/sync_engine/nucleus/classic_client/sync_engine.pyc", line 276, in <module>
  File "dropbox/sync_engine/nucleus/classic_client/thin_adapter/in_proc.pyc", line 98, in <module>
  File "dropbox/sync_engine/nucleus/classic_client/wrapped_thin_client.pyc", line 26, in <module>
  File "dropbox/sync_engine/nucleus/thin_client/client.pyc", line 28, in <module>
  File "dropbox/foundation/metrics/amp/remote_sink.pyc", line 10, in <module>
ImportError: libatomic.so.1: cannot open shared object file: No such file or directory
!! dropbox: fatal python exception:
['Traceback (most recent call last):\n', '  File "dropbox/client/main.pyc", line 7938, in main\n', '  File "dropbox/client/main.pyc", line 7862, in main_startup\n', '  File "dropbox/client/main.pyc", line 946, in __init__\n', '  File "dropbox/sync_engine_boundary/factory.pyc", line 147, in make_default_file_system\n', '  File "dropbox/sync_engine_boundary/factory.pyc", line 99, in __init__\n', '  File "dropbox/sync_engine_boundary/factory.pyc", line 118, in _initialize_classes\n', '  File "dropbox/sync_engine/nucleus/classic_client/sync_engine.pyc", line 276, in <module>\n', '  File "dropbox/sync_engine/nucleus/classic_client/thin_adapter/in_proc.pyc", line 98, in <module>\n', '  File "dropbox/sync_engine/nucleus/classic_client/wrapped_thin_client.pyc", line 26, in <module>\n', '  File "dropbox/sync_engine/nucleus/thin_client/client.pyc", line 28, in <module>\n', '  File "dropbox/foundation/metrics/amp/remote_sink.pyc", line 10, in <module>\n', 'ImportError: libatomic.so.1: cannot open shared object file: No such file or directory\n'] (error 3)
ghost commented 4 years ago

@Joshfindit did you try this fork: https://hub.docker.com/r/otherguy/dropbox/

Joshfindit commented 4 years ago

@Joshfindit did you try this fork: https://hub.docker.com/r/otherguy/dropbox/

I did not. This is for a production server and no offence to @otherguy the name (and personal website) does not give me the impression that it will be maintained going forward. I am, however, looking at that repo as a baseline for creating ours from scratch.

otherguy commented 4 years ago

@Joshfindit sure, that's your prerogative :) Thank you for your criticism of my name and "personal website",

I do welcome pull requests if you improve on my version!

testillano commented 4 years ago

Regarding libatomic issue, i just solved it by installing libatomic1:

RUN apt-get update && apt-get install libatomic1

Just add this installation in Dockerfile.

I work over ubuntu:latest, probably future releases of dropbox will fix this issue for ubuntu minimal on docker.

arjenfvellinga commented 4 years ago

Until my PR may get merged you can use my fork and build your own image (just replace janeczku/dropbox with the used tag dropbox when creating the container after building the image):

docker build --force-rm --tag dropbox https://github.com/thomashilzendegen/docker-dropbox.git#libatomic-fix

@thomashilzendegen I did this some time ago successful, and today I looked at the dropbox status again and the container fails to start with the following errors:

ImportError: libglapi.so.0: cannot open shared object file: No such file or directory

!! dropbox: fatal python exception:

['Traceback (most recent call last):\n', '  File "dropbox/client/main.pyc", line 262, in <module>\n', '  File "dropbox/foundation/navigation_service/factory.pyc", line 19, in <module>\n', '  File "dropbox/foundation/navigation_service/navigation_service_impl.pyc", line 57, in <module>\n', '  File "dropbox/foundation/html_views/electron/manager_factory.pyc", line 13, in <module>\n', '  File "dropbox/foundation/html_views/local/common/manager.pyc", line 33, in <module>\n', '  File "dropbox/client/features/model_registry.pyc", line 13, in <module>\n', '  File "dropbox/client/features/generated_models.pyc", line 279, in <module>\n', '  File "dropbox/client/features/previews/view_anchor.pyc", line 104, in <module>\n', '  File "<_bootstrap_overrides>", line 153, in load_module\n', 'ImportError: libglapi.so.0: cannot open shared object file: No such file or directory\n'] (error 3)

After executing docker build --force-rm --tag dropbox https://github.com/thomashilzendegen/docker-dropbox.git\#libatomic-fix I see the following output:

Sending build context to Docker daemon  74.75kB
Step 1/14 : FROM debian:jessie
 ---> 4cb524c015d4
Step 2/14 : MAINTAINER Jan Broer <janeczku@yahoo.de>
 ---> Using cache
 ---> 8fb6b20e8925
Step 3/14 : ENV DEBIAN_FRONTEND noninteractive
 ---> Using cache
 ---> dc58334691ba
Step 4/14 : RUN echo 'deb http://linux.dropbox.com/debian jessie main' > /etc/apt/sources.list.d/dropbox.list   && apt-key adv --keyserver pgp.mit.edu --recv-keys 1C61A2656FB57B7E4DE0F4C1FC918B335044912E      && apt-get -qqy update  && apt-get -qqy install ca-certificates curl python-gpgme libatomic1 dropbox     && apt-get -qqy autoclean       && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*        && groupadd dropbox      && useradd -m -d /dbox -c "Dropbox Daemon Account" -s /usr/sbin/nologin -g dropbox dropbox
 ---> Using cache
 ---> 0d5af5504a20
Step 5/14 : USER dropbox
 ---> Using cache
 ---> a0348550ad57
Step 6/14 : RUN mkdir -p /dbox/.dropbox /dbox/.dropbox-dist /dbox/Dropbox /dbox/base    && echo y | dropbox start -i
 ---> Using cache
 ---> 502b333fc3c9
Step 7/14 : USER root
 ---> Using cache
 ---> a4134474eb89
Step 8/14 : RUN mkdir -p /opt/dropbox   && mv /dbox/.dropbox-dist/dropbox-lnx* /opt/dropbox/    && mv /dbox/.dropbox-dist/dropboxd /opt/dropbox/         && mv /dbox/.dropbox-dist/VERSION /opt/dropbox/         && rm -rf /dbox/.dropbox-dist   && install -dm0 /dbox/.dropbox-dist      && chmod u-w /dbox      && chmod o-w /tmp       && chmod g-w /tmp       && mv /usr/bin/dropbox /usr/bin/dropbox-cli
 ---> Using cache
 ---> 39133e5f0bc2
Step 9/14 : COPY run /root/
 ---> Using cache
 ---> 3edd07d389e9
Step 10/14 : COPY dropbox /usr/bin/dropbox
 ---> Using cache
 ---> aeda0b1c6d68
Step 11/14 : WORKDIR /dbox/Dropbox
 ---> Using cache
 ---> 9bc5947da43d
Step 12/14 : EXPOSE 17500
 ---> Using cache
 ---> 7834b47d1a28
Step 13/14 : VOLUME ["/dbox/.dropbox", "/dbox/Dropbox"]
 ---> Using cache
 ---> a034a7199b40
Step 14/14 : ENTRYPOINT ["/root/run"]
 ---> Using cache
 ---> e673dc546ad5
Successfully built e673dc546ad5
Successfully tagged dropbox:latest

Which includes the line apt-get -qqy install ca-certificates curl python-gpgme libatomic1 dropbox so libatomic1 is installed.

Why does the container still fails to start?

adamkdean commented 4 years ago

I'm also seeing this libglapi issue after dropbox has upgraded automatically. I'm now looking into a fix for this.

Update: I'm pushing the fix for this to adamkdean/dropbox now. Should be there within a few minutes. For more info see https://github.com/adamkdean/docker-dropbox/blob/master/Dockerfile#L16-L17. This could perhaps be tidier but I don't have time right now to work out which of those deps are strictly needed/not needed for dropbox. Happy to accept PRs.

Update: Can confirm the fix is now working for my systems that use this image.

milanbojovic commented 4 years ago

@janeczku, @adamkdean it works for me as well