catalinaの備忘録スマートフォン用の表示で見るcatalinaの備忘録ソフトウェアやハードウェアの備忘録。後で逆引きできるように。晩秋から冬へ移り変わっていく季節ですね。世間では色々なものが発表されていて、どこから手を付けていこうかとワクワクしています。今回は開発環境まわりがパワーアップしたので、その記事になります。開発環境の構築Web開発ではリモートマシンで作業することが多く、そのためには数多くの設定をしてあげる必要があります。俗に「環境構築」とか呼ばれる作業で、これがとても面倒だったりします。実際の使い方は公式チュートリアルが充実しているので省略します。https://code.visualstudio.com/remote-tutorials/containers/getting-started自分の場合は既にdockerとvscodeが動作する環境があり、dockerもそれなりに触っていたので、1時間前後で完了して雰囲気は掴めました。今回は少しだけ昔を振り返りつつ、今回のVScode拡張機能で何ができるかを纏めます。昔の環境構築ちょっとだけ昔、Web開発といえばVirtualBoxで仮想マシン設定からでした。(今もある程度はこういう作業必要だったりしますが)https://catalina1344.hatenablog.jp/entry/2014/04/02/222630少し進んでVagrantとかPappertみたいな環境構築ツールも登場しましたが、環境構築の苦労はあまり変わらなかった印象です。なんで大変なの?て言われると、その時々によって状況が変わるという部分が大きくて、たとえば環境構築ツール(たとえばVagrant)のバージョンが違う開発担当者の環境そのものが違うwin/mac環境構築ツールを動かす言語(RubyとかPythonとか)のバージョンみたいなのがあります。毎回こういう地雷を踏みながら、特定条件下(社内だけとか)でしか使えないナレッジが溜まっていくわけです。最近の環境構築いまどきはDockerという軽量でポータブルな仮想環境があるので、これで環境構築がとても楽になった印象です。楽になった部分はありますが、まだ解決できていなかった部分もあります。今回のエントリは「まだちょっとだった部分」が解決されたよというお話しです。dockerを使うことで昔より楽になったターミナル設定ファイル共有設定ネットワーク設定dockerになってから、すごくラクになりましたね。トラブルが起きたら結局設定ファイル見て頑張るみたいなのはありますが、それはそれで。dockerを使っても、まだちょっとだった部分(今回のvscodeで解決!)エディタの設定デバッガの設定localとremoteでのバージョン合わせここはdocker含めて、環境構築ツールでは解消しきれていなかった部分です。そもそもDockerが提供するのは「仮想環境」であって、「開発環境」ではないというだけな話です。問題を解消できていない理由自体もとても簡単です。開発環境として使う場合、ローカルマシンとリモートマシン両方の設定が必要になってくるからですね。エディタをどう動かすかlocalで動かしてファイル共有だけするsshfsとsshで直にremote編集かリモートデバッガでは接続先に何かをインストールする必要がある使う言語にあわせたリモートデバッガが必要ネットワークのポート設定も必要だったりintellisense(コード補完)を効かせるための設定が面倒remoteとファイル共有だけしてるケースだと、localとremoteで同一パッケージが必要みたいなのがあったりして、とても手間でした。最後のintellisenseの設定が鬼門で、たとえばPythonで開発する場合DockerコンテナのPython関係のファイルをWindowsから見えるようマウントするパスが違ってたりしてうまくいかない。installとかをwindowsとコンテナ側それぞれでやるただしWindowsには入れにくいパッケージがあったりする。instal時にビルドするタイプ、かつ依存ライブラリもってるやつwindows側に全部そろっていくなら、dockerいらなくね?みたくなってました。Serverを置いて、そいつが全部面倒みてくれるという仕組みのようです。すると何が起きるのかというと、remotedevelopment当初のキャッチフレーズのとおり「VScodeとdockerコンテナのシームレスな連携」です。控え目に言って最高です。追加のライブラリを入れたい単にdockerfileを編集すればいける開発環境の面倒な初期設定全部やってくれる以下のような問題を気にしなくていいコンテナ作るためのdockerfileどうするとかネットワーク割り当てどうしよう、nginxの設定どうしようとかファイルのマウントどうしよう。postgreSQLみたいなのもプリセットにあるので楽々作れる。実際に使うことを考えてみると、まあアリなのではないかなと思っています。手放しで全てOKといえるわけではなくて、本番環境のコンテナどうやって作るかなどは別途考える必要がありそうです。(開発用の色々なものが入ったままのコンテナを本番に置く勇気は無いので。)とはいえ、原理的にはdockerを開発環境のback-endに置くというだけのことなので、dockerを前提とした開発であればアリだと思います。構成もシンプルなので、困ったときは通常のdockerコマンドで外から操作できるのも強いところです。Developmentという武器を手に入れたので個人開発が大きく捗りそうです。デバッガの設定が面倒だからと諦めてprintfデバッグしてた環境とか、大きく改善されますね。あとは開発環境の宗教論争が始まった時に「Windows10Proとdockerとvscodeで統一すればいい」と火に油を注げるようになります。それでは今回はこれくらいで。flask)そろそろWebSocketやってみようと思いました。...2019-02-13DockerでJenkinsとテスト用のコンテナを動作させるDockerでCI/CD環境を構築してみます。»プロフィールid:Catalina1344ソフトウェアやハードウェアの備忘録。後で逆引きできるように。OpenMVSで3D再構築するOpenMVGを試してみる(環境構築+α)父の日ですね月別アーカイブ忍者AdMaxはてなブログをはじめよう!Catalina1344さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。