2018-12-04 01:59:03 +01:00
# 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
2019-01-22 02:31:57 +01:00
2019-01-22 02:34:44 +01:00
### 0. Install the docker under your own platform's instructions
2019-01-22 02:31:57 +01:00
2019-01-22 02:34:44 +01:00
### 1. Pull the image
2019-01-22 02:31:57 +01:00
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker pull driveone/onedrive
```
2019-01-06 00:14:49 +01:00
**NOTE:** SELinux context needs to be configured or disabled for Docker, to be able to write to OneDrive host directory.
2018-12-04 01:59:03 +01:00
2019-01-22 02:34:44 +01:00
### 2. Prepare required stuff
2019-01-22 02:31:57 +01:00
2019-01-22 04:40:19 +01:00
Onedrive needs two volumes. One is config volume, which is recommanded to be a docker volume. You can create it with:
2019-01-06 00:14:49 +01:00
```bash
2019-01-22 02:31:57 +01:00
docker volume create onedrive_conf;
```
2018-12-04 01:59:03 +01:00
2019-01-22 04:40:19 +01:00
This will create a docker volume labeled 'onedrive_conf', which we will use it later.
2019-01-22 02:31:57 +01:00
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).
2019-01-22 02:34:44 +01:00
### 3. First run
2019-01-22 02:31:57 +01:00
2019-01-22 04:40:19 +01:00
Onedrive also needs to be authorized with your account. This is done by running docker in interactive mode.
2019-01-22 02:31:57 +01:00
**make sure to change onedriveDir to your own.**
```bash
onedriveDir="${HOME}/OneDrive"
docker run -it --restart unless-stopped --name onedrive -v onedrive_conf:/onedrive/conf -v "${onedriveDir}:/onedrive/data" driveone/onedrive
2018-12-04 01:59:03 +01:00
```
2019-01-22 02:31:57 +01:00
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.
2019-01-22 04:40:19 +01:00
### 4. Status, stop, and restart
2019-01-22 02:31:57 +01:00
Check if monitor service is running
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker ps -f name=onedrive
```
2019-01-22 02:31:57 +01:00
Show monitor run logs
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker logs onedrive
```
2019-01-22 02:31:57 +01:00
Stop running monitor
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker stop onedrive
```
2019-01-22 02:31:57 +01:00
Resume monitor
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker start onedrive
```
2019-01-22 02:31:57 +01:00
Unregister onedrive monitor
2019-01-06 17:02:58 +01:00
```bash
2018-12-04 01:59:03 +01:00
docker rm -f onedrive
```
2019-01-22 02:31:57 +01:00
2019-01-22 04:40:19 +01:00
### 5. Edit the config
2019-01-22 02:31:57 +01:00
2019-01-22 04:40:19 +01:00
Onedrive should run in default configuration, but however you can change your configuration. First download the default config from [here ](https://raw.githubusercontent.com/abraunegg/onedrive/master/config ) and put it into your onedrive_conf volumn. The detailed document can be found here: [additional-configuration ](https://github.com/abraunegg/onedrive#additional-configuration )
2019-01-22 02:31:57 +01:00
## Run or update with one script
If you are experienced with docker and onedrive, you can use the following script:
```bash
# 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
```
2018-12-04 01:59:03 +01:00
## Build instructions
2019-01-06 00:14:49 +01:00
```bash
2018-12-04 01:59:03 +01:00
git clone https://github.com/abraunegg/onedrive
2019-01-22 02:31:57 +01:00
cd onedrive/docker
2018-12-04 01:59:03 +01:00
docker build . -t driveone/onedrive
```