wsl2でdocker-composeの風を感じてみる
最近、Linuxノートを利用して作業しているんですが、いいですねLinux。とても軽くて使いやすい。
エンジニアからすればこれほんと最高な環境だと思います(`・ω・´)
ZenBook UX305CA ノートPC(ブラック/13.3"FHD/m3-6Y30/4G/Windows10 Home 64ビット)
- 出版社/メーカー: ASUS JAPAN
- メディア:
- この商品を含むブログを見る
PCはこれ使ってます。eBayで4万くらいで買いました。
CPUのベース900MHzなので、Intelli JといくつかのDockerコンテナ立ち上げるとかなり辛さありますが、この程度のスペックでもRails開発はできています。
しかし、Linuxを使ってると、しんどいことがちらほら
- ドライバ周り基本問題ないけど、USBハブのHDMIを使うとき認識しなかったりと微妙にハマりポイントがある
- displaylinkとかenviとか触ってみたけど解決できず。本体のHDMI-microポート使ってなんとか回避してます。2、3度端子折りましたけど...
- もともとManjaro LXDEでインストールした環境にi3wmを後から入れたため、GUIの設定周りが使えずコマンドラインで頑張ることになり、環境構築に時間が取られる
- Adobe系ソフト、Unityなどが使えない
- 最近はWEBも便利で代替も生まれてきてますが、代替できないのもある。
- モバイルに求めるものじゃないのかもしれないので優先度は低いんですが、いざ使うとなったときに選択肢がない
と、いろいろとめんどいことが発生するのです(´・ω・`)
多分おとなしくUbuntuいれておけば、ドライバの問題とか基本的な操作の部分は問題ないんでしょうか...外で気軽にコーディングするための環境がほしいだけなのに、いろいろと設定調べて反映していくの、ちょっと疲れますね、楽しいけど。
さて、そういうこともありLinux以外の選択肢を考えてみようと思ってました。とはいえ最近のMacはなんか微妙(´・ω・`) キーボードとか、3面ディスプレイの認識が不安定とか、ハードウェアのコスパが辛いとか。値段の問題もあるし。
そんなことを数ヶ月前からウンウン考えていたんですが、先月くらいにこんな記事が。
以前、wslでdocker最低限動く記事を書きました。
あのときはdocker-compose動かなかったのです。しかしwsl2ではLinuxのエミュレートではなく、Linuxカーネルが動いてます。そう、ここには普通のLinuxが存在しているのです。つまりdocker-composeも普通に動く。
最近の開発だと、Dockerさえちゃんと動けばどんなOS上でも開発は困りません。WindowsにちゃんとDocker動く環境が来てしまえば、Windowsに戻ってしまうのもありかなーと思ってます。
ここまでダラダラと書いてきましたが、結論としては、wsl2で問題なくdocker-composeが使えますよ!というお話でした。
# docker, docker-compose を最新のものに切り替えておく # uname -a Linux 4.19.43-microsoft-standard #1 SMP Sat Jun 1 16:36:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux sudo service docker start * Starting Docker: docker ...done. docker-compose up Starting etl_digdag_1 ... done Starting etl_db_1 ... done Attaching to etl_digdag_1, etl_db_1 digdag_1 | Error: Unable to access jarfile /usr/local/bin/digdag db_1 | 190724 17:28:31 [Note] mysqld (mysqld 10.0.35-MariaDB-1~xenial) starting as process 1 ...db_1 | 190724 17:28:31 [Note] InnoDB: Using mutexes to ref count buffer pool pages db_1 | 190724 17:28:31 [Note] InnoDB: The InnoDB memory heap is disabled db_1 | 190724 17:28:31 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins db_1 | 190724 17:28:31 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier db_1 | 190724 17:28:31 [Note] InnoDB: Compressed tables use zlib 1.2.8 db_1 | 190724 17:28:31 [Note] InnoDB: Using Linux native AIOdb_1 | 190724 17:28:31 [Note] InnoDB: Using CPU crc32 instructionsdb_1 | 190724 17:28:31 [Note] InnoDB: Initializing buffer pool, size = 256.0Mdb_1 | 190724 17:28:31 [Note] InnoDB: Completed initialization of buffer pool ...