この記事は個人で開発したWebアプリ「EyeHelpManager」の開発に関して記述したものです。
主な内容は以下になります。
Docker環境
Web_front
現在取り組んでいるバイトで開発メンバー間の環境の違いによるエラーが続出したので、Dockerで環境を作ろうと思ったのですが、ふとDockerのイメージは何を採用すればいいのか悩みました。調べてみると、Dockerは頻繁にbuildする場合があり、できるだけimageサイズが小さい必要がある模様。よく技術記事で見かけるのはnodeの場合alphinが使われていたが、最近のだとslimが良いらしい(2022/2)。理由としては、alphinはimageサイズは小さいが、必要なパッケージが足りない場合がままあるらしく、極限まで削る必要がある、または動作検証が十分にできない場合はslimの仕様が無難らしい。
docker-composeのオプションで見つけたもの。由来はUNIX系のコマンドらしい。sshとかした時の仮想端末のデバイス名を調べるときに使用する。という背景を記憶のためのキーにしつつ、Dockerではこの仮想端末を配置するコマンドを実行させる(tty=true)ことでフォアグラウンドで動くプログラムを永続化させてる。
オプションのitってiとt別物だったんですね。tは上記のttyを指していて、こちらは仮想端末を割り当てることで、コンテナの標準出力をホストの出力につなげている。一方、iオプションinteractiveの略で、ホストの入力をコンテナの標準出力につなげる。
GitHubからpullすると、Expected linebreaks to be 'LF' but found 'CRLF'.
というエラーが発生しました。今までVSCodeでCRLFとLFという文字が右下に表示されているのを何度も見ましたが、ついに何かを知る時が来たようです。これはUNIXとWindowsにおける改行コードの違いの様です。GitHubからpullもしくはpushした時に、改行コードをよしなに変換してくれるようです。(eslintの設定でここに最初躓きました。)