Overleafローカルで開発する方法
Overleafのコンテナを起動できないときのエラーハンドリング
状況
Overleafのコンテナを起動できない
jun@jun-desktop:~/src/overleaf-toolkit$ bin/up
Initiating Mongo replica set...
Cannot connect to the Docker daemon at unix:///home/jun/.docker/desktop/docker.sock. Is the docker daemon running?
Dockerは動いているのに
jun@jun-desktop:~/src/overleaf-toolkit$ sudo systemctl status docker
[sudo] jun のパスワード:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset>
Active: active (running) since Sun 2024-11-17 19:16:21 JST; 2h 35min ago
原因
Dockerのコンテキストが desktop-linux
に設定されており、これが非標準のソケット (/home/jun/.docker/desktop/docker.sock
) に接続しようとしている
→これをデフォルトのコンテキスト (default
) に切り替えることで直った
1. 現在のコンテキストを確認
まず、現在使用しているDockerコンテキストを確認します。
docker context show
出力が desktop-linux
となっていることを確認します。
2. デフォルトコンテキストに切り替え
デフォルトのコンテキスト (default
) に切り替えます。
docker context use default
成功すると、以下のようなメッセージが表示されます。
default
3. コンテキストの確認
再度、現在のコンテキストを確認して default
に変更されたことを確認します。
docker context show
出力が default
になっていることを確認してください。
4. Dockerコマンドの動作確認
コンテキストを切り替えた後、Dockerが正しく動作するか確認します。
docker ps
- 期待される結果: 実行中のコンテナの一覧が表示されるか、エラーなしで空のリストが返されます。
- エラーが表示される場合: まだ問題が解決していない可能性があります。以下の追加手順を試してください。
bin/up
スクリプトの再実行
5. コンテキストを切り替えた後、再度 bin/up
コマンドを実行してみてください。
bin/up
これで正常に動作するはずです。
Overleafのオープンソース版をUbuntu上でローカルに構築する手順
1. 必要なソフトウェアのインストール
まず、以下のソフトウェアをインストールします。
sudo apt update
sudo apt install -y git docker.io docker-compose
docker
とdocker-compose
のバージョンを確認して、正しくインストールされていることを確認してください。
docker --version
docker-compose --version
2. Overleaf Toolkitのクローン
Overleafの公式ツールキットをクローンします。
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
cd overleaf-toolkit
3. 初期設定
初期設定を行います。
bin/init
このコマンドにより、config
ディレクトリ内に以下のファイルが生成されます。
overleaf.rc
variables.env
version
4. ポート番号の設定
デフォルトでは、Overleafはポート80を使用しますが、他のサービスと競合する可能性があるため、ポート番号を変更します。config/overleaf.rc
ファイルを編集し、OVERLEAF_PORT
の値を適切なポート番号(例: 8000)に変更します。
OVERLEAF_PORT=8000
5. データディレクトリの作成
必要なデータディレクトリを作成します。
mkdir -p data/overleaf data/mongo data/redis data/git-bridge
6. コンテナの起動
Overleafのコンテナを起動します。
bin/up
初回の起動には時間がかかる場合があります。起動後、ブラウザでhttp://localhost:8000/launchpad
にアクセスし、管理者アカウントを作成します。
7. 日本語対応のための設定
日本語の文書を扱うために、TeX Liveのフルインストールを行います。
まず、起動中のsharelatex
コンテナに入ります。
docker exec -it sharelatex bash
コンテナ内で以下のコマンドを実行し、TeX Liveをフルインストールします。
tlmgr update --self
tlmgr install scheme-full
インストールには時間がかかる場合があります。完了後、コンテナから退出します。
exit
8. 新しいイメージの作成
変更を反映させるため、新しいDockerイメージを作成します。
docker commit sharelatex sharelatex/sharelatex:with-texlive-full
9. 設定ファイルの更新
config/docker-compose.override.yml
ファイルを作成し、以下の内容を追加します。
version: '2.2'
services:
sharelatex:
image: sharelatex/sharelatex:with-texlive-full
10. コンテナの再起動
コンテナを再起動します。
bin/stop
bin/up
これで、日本語対応が完了し、ローカル環境でOverleafを利用できるようになります。
参考資料
nginx や Apache などのウェブサーバーがポート 80 を使用している場合、ポートがかぶるから停止するかconfigを変更する