-
-
Notifications
You must be signed in to change notification settings - Fork 1
Installation with Docker JP
moleditpy のようなGUIアプリケーションは、グラフィックス、ウィンドウシステム、キーボード入力など、多くの複雑なシステムライブラリに依存しています。Dockerを使用することで、これらの依存関係がすべて含まれたコンテナが作成されるため、お使いの環境を汚すことなく、簡単かつ確実にアプリケーションを起動できます。
インストールを開始する前に、お使いのシステムに以下のソフトウェアがインストールされていることを確認してください。
-
Git: リポジトリをクローンするために必要です。
-
Docker: お使いのOSに合ったDockerをインストールしてください。
-
X11 Server (GUI表示に必須): コンテナ内のGUIをデスクトップに表示するために必要です。
- Linux: 通常、デスクトップ環境に標準で含まれています。追加のインストールは不要です。
- macOS: [XQuartz](https://www.xquartz.org/) をインストールし、起動しておいてください。
- Windows: [VcXsrv](https://sourceforge.net/projects/vcxsrv/) などをインストールし、起動しておいてください。(WSL2とWSLgを利用する場合は不要なことがあります)
まず、このリポジトリをローカルマシンにクローンします。
git clone https://github.com/HiroYokoyama/python_molecular_editor_docker.git
cd python_molecular_editor_docker/リポジトリのルートディレクトリ(Dockerfile がある場所)で、以下のコマンドを実行してDockerイメージをビルドします。
docker build -t moleditpy-app .-
-t moleditpy-appは、作成するイメージにmoleditpy-appという名前を付けています。 - 最後の
.は、カレントディレクトリのDockerfileを使用することを意味します。 - 初回ビルドには数分かかることがあります。
お使いのOSに応じて、以下のコマンドを実行してコンテナを起動し、moleditpy を実行します。
-
(初回のみ)ホストPCでターミナルを開き、コンテナからの接続を許可します。
xhost +local:docker
-
コンテナを起動します。
docker run --rm -it \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v moleditpy-data:/data \ -v moleditpy-setting:/root/.moleditpy \ moleditpy-app
-
XQuartzを起動します。 XQuartzの設定で、「セキュリティ」タブの「ネットワークからの接続を許可」にチェックが入っていることを確認してください。
-
ホストPCのターミナルで、コンテナからの接続を許可します。
xhost + 127.0.0.1
-
コンテナを起動します。
docker run --rm -it \ -e DISPLAY=host.docker.internal:0 \ moleditpy-app
-
VcXsrvを起動します。 起動時に "Disable access control" のチェックボックスをオンにすることをおすすめします。
-
ホストPCのIPアドレスを確認します。 コマンドプロンプトやPowerShellで
ipconfigを実行し、お使いのネットワークアダプタのIPv4アドレスを調べます。 -
コンテナを起動します。
<your-ip-address>の部分を、ステップ2で調べたIPアドレスに置き換えてください。docker run --rm -it \ -e DISPLAY=<your-ip-address>:0.0 \ moleditpy-app
-
Error: cannot open displayというエラーが出る場合:- X11 Server (XQuartz, VcXsrv) が起動しているか確認してください。
-
xhostコマンドが正しく実行されているか確認してください。 -
-e DISPLAY環境変数の値が、お使いの環境に対して正しいか確認してください。
-
Cannot connect to the Docker daemonというエラーが出る場合:- Docker DesktopまたはDockerサービスが起動していることを確認してください。