LinuxでOneDriveを使えるようにします(docker使用)

スポンサーリンク

LinuxでOneDriveを利用できるようにします。ubuntu22.04にインストールしてあるdockerを使用して実現します。通常のインストール方法は以前記事にしました。

GitHub - abraunegg/onedrive: OneDrive Client for Linux
OneDrive Client for Linux. Contribute to abraunegg/onedrive development by creating an account on GitHub.

githubの説明を参考にして進めます。OneDriveの設定が保存されるvolumeを作成するとあります。

docker volume create onedrive_conf

ここでは、volumeを作成するコマンドは使用しないことにして、自分で指定することにします。このコマンドを使用するとデフォルトでは、下記のディレクトリにvolumeが作成されます。

/var/lib/docker/volumes

次に環境変数の設定をして、これを元にディレクトリを作成します。また、潜在的なユーザーまたはグループの競合を回避するために、コマンド出力で指定された実際のUIDおよびGIDを置き換えることにします。

ONEDRIVE_DATA_DIR→OneDriveのデータを格納するディレクトリ。
ONEDRIVE_CONF_DIR→OneDriveのコンフィグやOneDrive認証で生成されたトークンなどが含まれるディレクトリ。

export ONEDRIVE_CONF_DIR="/root/onedrive/conf"
export ONEDRIVE_DATA_DIR="/root/onedrive/data"
mkdir -p ${ONEDRIVE_CONF_DIR}
mkdir -p ${ONEDRIVE_DATA_DIR}
export ONEDRIVE_UID=`id -u`
export ONEDRIVE_UID=`id -g`

準備ができたのでdockerコマンドを入力します。

docker run -it --name onedrive \
 -v "${ONEDRIVE_CONF_DIR}:/root/onedrive/conf" \
 -v "${ONEDRIVE_DATA_DIR}:/root/onedrive/data" \
 -e "ONEDRIVE_UID=${ONEDRIVE_UID}" \
 -e "ONEDRIVE_GID=${ONEDRIVE_GID}" \
driveone/onedrive:latest

エラーが発生しました。

usermod: no changes
ROOT level privileges prohibited!

ディレクトリの所有権を変更してもエラーは直りませんでした。仕様なので一般ユーザーで作業することにします。

例:chown -R www-data:www-data /root/onedrive

起動しないコンテナを削除します。

docker rm onedrive

一般ユーザーをdockerのメンバーにします。念のため確認もします。

usermod -aG docker mamushi
cat /etc/group | grep docker

メモ:グループから除外するには次のコマンドを入力します。

gpasswd -d mamushi docker

rootからログアウトします。

exit

SSH接続したユーザーに切り替わりました。同様にして環境変数を定義してdockerコマンドを入力します。

export ONEDRIVE_CONF_DIR="${HOME}/onedrive/conf"
export ONEDRIVE_DATA_DIR="${HOME}/onedrive/data"
mkdir -p ${ONEDRIVE_CONF_DIR}
mkdir -p ${ONEDRIVE_DATA_DIR}
export ONEDRIVE_UID=`id -u`
export ONEDRIVE_UID=`id -g`
docker run -it --name onedrive \
 -v "${ONEDRIVE_CONF_DIR}:/home/mamushi/onedrive/conf" \
 -v "${ONEDRIVE_DATA_DIR}:/home/mamushi/onedrive/data" \
 -e "ONEDRIVE_UID=${ONEDRIVE_UID}" \
 -e "ONEDRIVE_GID=${ONEDRIVE_GID}" \
 driveone/onedrive:latest

うまくいくとURLが表示されるので、これをブラウザにコピペしてアクセスします。

マイクロソフトのログイン画面が表示されるので、使用したいOneDriveを含むアカウント情報を入力します。

空白のページが表示されます。この空白のページのURLをメモしておきます。

このURLを先のDockerコマンドを入力して表示されているレスポンスURLの所に貼り付けます。

タイトルとURLをコピーしました