質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

682閲覧

dockerコンテナ内でHost側に置いてある.vimrcに書かれた機能を使いたい。

Akihiro_O

総合スコア20

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/04/18 12:09

達成したいこと

  • Docker内でホスト側に置いてある.vimrc内に書かれている機能を使いたい。

やったこと

  • docker run時に、ホスト側の/home/akihiro下に置いたディレクトリをマウントして、docker内でpythonファイルをvimで実行。
akihiro@akihiro-thinkpad-x1-carbon-5th:~$ docker run --rm -it -v /home/akihiro:/home --name test cnn_study:latest
  • 結果、.vimrc内に書かれた設定が機能しない。

docker初心者です。ご回答お待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

マウント先のディレクトリを間違えていないですかね。
手元で試せてはいませんが、多分以下のような書き方でないとダメな気がします。
docker run --rm -it -v /home/akihiro:/home/USERDIR --name test cnn_study:latest
以下でもいいかもしれません
docker run --rm -it -v /home/akihiro:/~ --name test cnn_study:latest

現状のマウント設定を見るに、コンテナ内のhomeディレクトリ直下にakihiroディレクトリの中身全てが展開されているように見受けられます。
つまり、コンテナは/home/.vimrcになってる気がしますが違いますかね?
多分ユーザー名がtestの場合、/home/test/.vimrcとしないと読み込まれない気がします。

余談ですが、ユーザーディレクトリ配下全てコンテナにマウントするのは...と思います。
desktopとかもマウントしているってことですよね。

解決方法はちょっと技術的にお答えできませんが、例えば、一度コンテナに必要なファイルだけをコピーして、コンテナをstop状態にし続ければコピーしたファイルはコンテナないに維持されるはずです。
(コンテナをkillしない限りはファイルの状態を維持できるはず)
まあ、いつの間にかコンテナが消えた場合のリスクはありますが...

投稿2022/04/18 13:15

YuuT

総合スコア667

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Akihiro_O

2022/04/19 13:32 編集

コメントありがとうございます。 コンテナ内、/home下にmkdirで/akihiroディレクトリを作って、そこにホストから.vimrc(必要なファイル)をコピーしてきて、再度コンテナ内でvimを開いたものの、機能しませんでした。
YuuT

2022/04/20 00:13

vimはコンテナにログインしているユーザーのホームディレクトリを見に行き設定ファイル(.vimrc)を探します。 なので、自分でディレクトリを作成してもうまくいきません。 結論を言うとコンテナログインするユーザーのホームディレクトリに設定ファイル等を置けばよいのですが、 どのディレクトリに置けばよいかはvimを開こうとしている状態(コンテナにログインした状態)でターミナル上でcdまたはcd ~で現在ログインしているユーザーのホームディレクトリに移動します。 そしてpwdコマンドを使用して現在いるホームディレクトリのパスを確認します。 その場所にvim関連のファイルを置いてみたらどうでしょうか? ユーザーはコンテナによって変わるので、一例ですが、centosの公式コンテナを私が使用して試した場合、ログインするユーザーはrootだったので、コンテナを起動/ログイン(docker run -it centos bash)してcdコマンド、pwdコマンドを入力すると/rootと出力されました。 (ルートユーザーのホームディレクトリは/rootになり、それ以外のユーザーは/home配下に基本的にはログインユーザー名でホームディレクトリが作成されます) なので私の場合、/rootの下に.vimrc(と関連ファイル)を置くとvimを使用した場合、設定が反映されるようになります。(なりました)
Akihiro_O

2022/04/20 13:30

ありがとうございます。 ご指摘の通り、コンテナ内の/root下に、.vimrcファイルをホスト側からコピーして置いたら、機能が反映されました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問