2019年1月15日火曜日

wsl + Docker for Windows でdocker-compose を動作させる際の Volume設定について


SYSTEM_KDです。
年初はブログ更新を頑張るけど、すぐに力尽きます。。^^;

docker-compose.yml の Volume 設定について

前回、環境をCygwinから wsl へ変更したという記事を書きましたが、docker-compose up してみると、volume部分で問題が発生することが判明しました。
ディレクトリは相対パスで指定していたので、問題ないだろうと思っていたのですが甘かったです。

※wsl + Docker for Windows は、tcp://localhost:2375 経由で動かすようにしてます。

具体的には、docker-compose up 自体は成功するのですが、windows側のマウントが行えていない(ディレクトリ空っぽ)状態になっていました。

調べてみると、wsl 側でホストのドライブは 「/mnt/ドライブ」 という感じで、マウントされているために上手くマウントできていない状態とのことでした。

解決策としては、設定ファイルを追加してマウントの場所を変えるということでした。
設定ファイルの追加場所は、
/etc/
で、ファイル名は
wsl.conf
になります。
中身は、
[automount]
enabled = true
root = /
options = "metadata,umask=22,fmask=11"
mountFsTab = false

こんな感じです。
マウントの場所を/mnt から / に変更している状態となります。

設定ができたら、wsl を一旦終了させます。

これで、/c/ とか /d/ とかでアクセスできるようになり、上手くマウントできるようになるかと思います。

wsl-terminal が起動しない

上記でマウント問題が解決させ、wsl を起動させたところ、起動しないという問題発生。

設定ファイル追加を、wsl-terminal 以外から実施していたので気づきませんでしたが、wsl-terminalから実施してたら、終了させた後に起動できなくなるかと思います。

ちょっと焦りました ^^;

おそらく /mnt/ 配下にドライブがマウントされていること前提で動作しているのだろう(勝手な憶測)ということで、他のターミナルとか、コマンドプロンプト経由でubuntuを起動して、ちょろっと変更します。

変更といっても、/mnt/ドライブ から /ドライブ にシンボリックリンクをはるだけです。

ln -s /c /mnt/c

Cドライブだとこんな感じですね。

これで、wsl-terminal も起動できるようになります。

以上、wsl + Docker for Windows でdocker-compose を動作させる際の Volume設定について でした。

2019年1月13日日曜日

Cygwin から WSL にきりかえ。


SYSTEM_KDです。

久々のブログ更新です。


この年末年始は、始めて大腸検査・胃カメラをするなど、毎週病院に通う謎仕様になっておりました。

今は、右耳が難聴という・・・急激に歳をとったのか ^^;
おみくじ大吉だったのになんという年明けだ!!

(皆様もストレスにはお気をつけください m(__)m


と、まぁ色々ありましたので、気分を変えるということで、環境を少しチェンジしてみました。


Cygwin から WSL に切り替え

今までは、UNIX的な操作をする際に、 Cygwin を利用しておりましたが、そろそろ WSL(Windows Subsystem for Linux)を使ってみようかなと思い切り替えてみました。


インストールは簡単で、コントロールパネルから「プラグラムと機能」を選択し、「Windows の機能有効化まとは無効化」から「Windows Subsystem for Linux」のチェックを入れて再起動。

image

image


再起動が完了したら、「Microsoft Store」(スタートボタンをおして、”Store”と入力すれば出てくる)を立ち上げて、検索部分に「ubuntu」と入力すればOK


image


何種類か出てきますが、好きなのを選択(バージョン番号書いていないのがデフォっぽい)

あとは、右上の「入手」ボタンをクリックすれば完了。


インストール後、「起動する」をクリックするとターミナルが起動して、初期処理と「ID・パス」の設定を行います。


wsl-terminal を導入

そのまま利用しても良いのですが、使いにくかったので、wsl-terminal を導入しました。

[ここからゲットできます]
https://github.com/goreliu/wsl-terminal/releases

zip等を展開すると、「open-wsl.exe」がありますので、そのままダブルクリックで起動できます。


微妙に問題発生

特に問題なく使えるように思えたのですが、sudo apt-get update を実行しようと、パスワードがNGになるという現状が発生しました。

再起動して、元のターミナルから実施してみたのですが、現象は変わらず。。


もう1つターミナルを立ち上げて、実行してみると今度は成功しました。


謎現象かと思っておりましが、よく見ると失敗したターミナルは、「Bash on Ubuntu on Windows」となっており、どうやらベータ版のころに入れた(記憶なしw)ものが邪魔をしておりました。

アンインストール方法をググって、

lxrun /uninstall /full 

をコマンドプロンプトから実行して、万事解決しました。


PhpStormのターミナルも変更

PhpStormのターミナルをCygwinにしていたので、こちらも合わせて変更しました。

「File > Setting」より設定を起動して、「Tools > Terminal」を選択。

「Shell path」に「C:\Windows\System32\wsl.exe」を設定して完了。


PhpStormを再起動するか、Terminalのタブを全て閉じてあげれば、wsl を利用できます。



以上、1年ぶりぐらいのブログ更新。「Cygwin から WSL に切り替え」でした。