1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerで開発環境構築

Posted at
  • Docker v24

はじめに

久しぶりにDockerで開発環境を構築する際に手間取ったため、備忘録として開発環境構築手順を残しています。
Docker Desctopのインストールなど、Dockerの利用準備は済んでいる前提です。

環境構築の流れ

  1. compose.yaml を作成する
  2. 追加操作が必要なサービス毎にDockerfileを用意する
  3. docker compose up -dでコンテナを確認

1. compose.yaml

いわゆるdocker-compose.ymlです。最新のDockerだとcompose.yamlが推奨されているようなので、この記事ではそちらで統一しています。後方互換性があるのでどちらでも大丈夫です。

まずはcompose.yamlを作成し、必要なサービス毎にコンテナを定義します。
↓はNuxt3とMySQLで作る場合の一例です。

name: my-project # プロジェクト名
services:
  # サービス名
  front:
    # コンテナ名を指定しない場合は{プロジェクト名}-{サービス名}-{連番}が自動で設定される
    container_name: my-project-front # コンテナ名
    build: docker/front # Dockerfileの場所
    volumes:
      # ホスト側のディレクトリをコンテナ側にマウント
      - ./src:/app:cached
      - nuxt_node_modules:/app/node_modules
    ports:
      # ポートフォワーディング
      - "3000:3000"
      - "24678:24678" # Nuxt3 HMR
    tty: true # コンテナ内でコマンドを実行するために必要
    environment:
      # 環境変数
      - HOST=0.0.0.0
      - port=3000
      - CHOKIDAR_USEPOLLING=true # Nuxt3 HMR

  mysql:
    image: mysql:8.0 # イメージ
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
    ports:
      - 3306:3306
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  # ボリュームの定義
  nuxt_node_modules:
  mysql-data:

2. Dockerfile

次に作成時に追加操作が必要なコンテナにDockerfileを用意します。
↓はNuxt3用Dockerfileの一例です。

# Node.jsのイメージを使用
FROM node:20-slim

# タイムゾーンを設定
ENV TZ Asia/Tokyo

# 作業ディレクトリを設定
WORKDIR /app

# パッケージをインストール
RUN apt-get update \
    && apt-get install -y \
    git \
    vim

3. コンテナを作成し、開始する

docker compose up -dコマンドはcompose.yamlで定義したサービス用コンテナの構築、(再)作成、開始をまとめておこなってくれます。
-dオプションは--detachの略でバックグラウンドでコンテナを実行します。

用語

Dockerで使われる用語について、自分なりに簡潔にまとめています。

Docker とは

アプリケーションを開発、配布、実行するためのオープンプラットフォーム。
コンテナ型の仮想環境を運用する。

コンテナ

一つのOS上で、CPU・メモリ・プロセス空間などが独立した仮想環境。

Dockerイメージ

コンテナ作成の元となるテンプレートファイル。

Dockerボリューム

コンテナ上のデータを永続化するための場所。
コンテナが破棄されても消えないようにするため。

Dockerfile

Dockerイメージにレイヤーを追加するためのテキストファイル。
ネット上に公開されているイメージだと足りない部分をDockerfileに追記する。

Docker Compose

複数のコンテナを起動したりする Yamlファイル。
ここでフロント、DB、バックエンドコンテナのように記述しておくことでcompose up で即起動できるようになる。

参考URL

Dockerドキュメント

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?