🐳

3年間Dockerと向き合ってきた拙者によるDocker環境構築決定版 with Devcontainer (その1)

に公開

皆様、お初にお目にかかります。yamaterousと申します。
今回、zennにて初投稿を行います。

私が今回紹介するのは、Docker環境構築の決定版です。

大それた言い方をしてますが、3年間Dockerと向き合ってきた中で、この使い方は多くの方に活用してもらえるDocker環境なのではないかと思い、記事を書くことにしました。(最たるきっかけは、友人に紹介して絶賛してもらったという部分もありますが)

ただ単に、環境の構造とファイルの中身を紹介するだけでなく、記事投稿の練習もかねて、詳細部について細かく解説してみようと思います。

ただ、一つの記事ですべてを記述するのは相当量になると考えたので、今回はいったん全体の構造を提示し、以降の記事にて、詳細を話していければなと考えております。

ディレクトリ構造

<project-root>
|-- back
|   |-- .devcontainer
|   |   `-- devcontainer.json
|   |-- config
|   |-- share
|   |-- docker-entrypoint.sh
|   `-- Dockerfile
|-- db
|   |-- .devcontainer
|   |   `-- devcontainer.json
|   |-- config
|   |-- share
|   |-- docker-entrypoint.sh
|   `-- Dockerfile
|-- front
|   |-- .devcontainer
|   |   `-- devcontainer.json
|   |-- config
|   |-- share
|   |-- docker-entrypoint.sh
|   `-- Dockerfile
|-- .env
`-- compose.yml

各ファイル/フォルダの概要

  1. back/db/frontフォルダ
    • 各service(container)の設定を行う
  2. .devcontainer/devcontainer.json
    • VSCode拡張機能Dev Containers用の定義ファイル
  3. config
    • 設定ファイル等を入れておくディレクトリ
  4. share
    • ホストマシンとコンテナで共有したいファイルを保存しておくフォルダ
  5. docker-entrypoint.sh
    • container起動後に実行したい内容を記述しておくファイル
    • Dockerfile内のENTRYPOINTで指定しておく
  6. Dockerfile
    • 各イメージの定義ファイル
  7. .env
    • compose.yml用の環境変数ファイル
  8. compose.yml
    • docker composeの定義ファイル

予告

次回より、各ファイルの中身についてみていきます。

Discussion