abraunegg-onedrive/docker/README.md

3.1 KiB

onedrive docker image

Thats right folks onedrive is now dockerized ;)

This container offers simple monitoring-mode service for 'Free Client for OneDrive on Linux'.

Usage instructions

0. Install the docker under your own platform's instructions

1. Pull the image

docker pull driveone/onedrive

NOTE: SELinux context needs to be configured or disabled for Docker, to be able to write to OneDrive host directory.

2. Prepare required stuff

Onedrive needs two volumns. One is config volumn, which is recommanded to be a docker volumn. You can create it with:

docker volume create onedrive_conf;

This will create a docker volumn labeled 'onedrive_conf', which we will use it later.

The second one is your data folder that needs to sync with. The owner of the folder must not be root, and you must have permission to its parent directory (because onedrive will try to setup a monitor for the sync folder).

3. First run

Onedrive also needs to be authurized with your account. This is done by running docker in interactive mode.

make sure to change onedriveDir to your own.

onedriveDir="${HOME}/OneDrive"
docker run -it --restart unless-stopped --name onedrive -v onedrive_conf:/onedrive/conf -v "${onedriveDir}:/onedrive/data" driveone/onedrive

You will be asked to open a specific link using your web browser where you will have to login into your Microsoft Account and give the application the permission to access your files. After giving the permission, you will be redirected to a blank page. Copy the URI of the blank page into the application.

If your onedrive is working as expected, you can detach from the container with Ctrl+p, Ctrl+q.

4. Status, stop, and restart, etc.

Check if monitor service is running

docker ps -f name=onedrive

Show monitor run logs

docker logs onedrive

Stop running monitor

docker stop onedrive

Resume monitor

docker start onedrive

Unregister onedrive monitor

docker rm -f onedrive

5. Eidt the config

Onedrive should run in default configuration, but however you can change your configuration. First download the default config from [https://raw.githubusercontent.com/abraunegg/onedrive/master/config] and put it into your onedrive_conf volumn. The detailed document can be found here: [https://github.com/abraunegg/onedrive#additional-configuration]

Run or update with one script

If you are experienced with docker and onedrive, you can use the following script:

# Update onedriveDir with correct existing OneDrive directory path
onedriveDir="${HOME}/OneDrive"

firstRun='-d'
docker pull driveone/onedrive
docker inspect onedrive_conf > /dev/null || { docker volume create onedrive_conf; firstRun='-it'; }
docker inspect onedrive > /dev/null && docker rm -f onedrive
docker run $firstRun --restart unless-stopped --name onedrive -v onedrive_conf:/onedrive/conf -v "${onedriveDir}:/onedrive/data" driveone/onedrive

Build instructions

git clone https://github.com/abraunegg/onedrive
cd onedrive/docker
docker build . -t driveone/onedrive