3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WEB開発におけるDockerの使い道を超初心者なりに整理した

Posted at

この記事を読むにあたっての注意

  • 初心者が備忘録として、Dockerを利用したWEB開発の流れについてまとめたものです。
  • 普段、業務などでDockerを利用し、WEB開発を行っている人などには情報として価値の無い記事です。
  • Dockerのコマンドや、Dockerfile、docker-compose.ymlなどについては一切書いておりません。

本題

Dockerをなぜ使う?

開発環境について
開発環境を開発メンバーごとに手動で用意すると、環境に少なからず差異が生まれてしまう。
これを防ぐために、Dockerを利用し、開発環境のコード実行環境を統一する。
これによって、コードやデータベースのシードデータなどさえ同じならば、コード(実行ファイル)は同じように実行できる。

本番環境について
本番環境(端末など)が複数存在する場合、少なからず環境には差異がある。
どの本番環境(端末)でも同じように動作することを保証するために、Dockerを用いて環境を構築し、実行するコードや実行ファイルを置くなどの最低限の作業(git pullなど)で、動作させる。

開発環境について

Dockerで統一するのは、コードの実行環境(ローカルのテスト環境)。
なので、コードはホストOS側で、好きなエディタなどを用いて書いて、コードが書けたら、必要なものだけをDockerコンテナ内にコピーし(.dockerignoreを利用しても良い)動作確認を行う。

Dockerfileについて

Dockerイメージは開発環境用と本番環境用の2つ用意するのが一般的。故に、Dockerfileを開発環境用と本番環境用の2つを管理するか、マルチステージビルド機能を利用して、単一のDockerfileにまとめる必要がある。
ただし、環境でイメージを使い分けるので、開発環境で正常に動作するからといって、本番環境で正常に動作すると限らない。
したがって、可能な限り、本番環境の動作を保証するための手段を取る必要がある。
対策:

  1. 静的コード解析ができるエディタを使用する。
  2. 静的コード解析の自動化
  3. テストを書く
  4. テストの自動化
  5. デプロイの自動化(Dockerに対応しているCIツールもある)

他にも、少し話がずれるかもしれないが、権限管理、手入力で行う定型的なコマンドのシェルスクリプト化、作業内容を作業表にまとめておくなどの対策も必要かもしれない

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?