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

Docker + Angular CLIでローカルを汚さないクリーンな開発環境を構築する

Last updated at Posted at 2025-12-22

はじめに

「フロントエンド開発をやってみたいけどローカルの環境汚染が気になる。。。」
「新しい技術を試したいけど、PCにNode.jsやツールを直接インストールしたくない...」
そんな方に向けて、Docker DesktopとVS Codeのみを使い、コンテナ内でAngular開発を完結させる手順をまとめました。

構成

Host OS: Windows / macOS / Linux (Docker Desktop導入済み)

Editor: VS Code (+ Dev Containers 拡張機能)

Framework: Angular (TypeScript)

開発用ディレクトリと設定ファイルの準備

まず、プロジェクトの基板となるフォルダを作成し、その中に以下の2つのファイルを作成します。

Dockerfile

Angular CLIをインストールしたNode.jsイメージを作成します。

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

# Angular CLIをグローバルにインストール
RUN npm install -g @angular/cli

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

# コンテナが勝手に終了しないように維持する
CMD ["tail", "-f", "/dev/null"]

docker-compose.yml

ポートマッピングやボリューム(同期)の設定をします。

services:
  app:
    build: .
    volumes:
      - .:/app  # ローカルのファイルをコンテナに同期
    ports:
      - "4200:4200" # Angularの開発サーバー用
    tty: true

コンテナの起動とAngularプロジェクトの生成

ターミナル(コマンドプロンプト)で作成したフォルダに移動し、以下の手順で実行します。

コンテナの起動

$ docker compose up -d

Angularプロジェクトの初期化

カレントディレクトリ(.)に展開しつつ、プロジェクト名を指定します。
Angularプロジェクトを開始するにはng newを使います。(参考:Angular CLIの ng new リファレンス)

$ docker compose exec app ng new my-project --directory . 

ここで、my-projectは作成するプロジェクト名です。

--routing --style scssなど生成時のオプションを指定できますが、
しなくてもコンソール上で質問してきてくれるので問題ないです。

VS Codeでの開発体験を最大化する

ローカルのVS Codeで開発するために、拡張機能 「Dev Containers」 をインストールします。

  1. VS Codeでプロジェクトフォルダを開く

  2. 左下の青いアイコン [><] をクリック

  3. 「Reopen in Container」 を選択

これでVS Code自体がコンテナ内で動作し、コンテナ内の node_modules を参照して強力な補完が効くようになります。

開発サーバーの起動

VS Code内のターミナル(または docker compose exec)で以下を実行します。

$ ng serve --host 0.0.0.0

--host 0.0.0.0 : これを付けないと、コンテナの外側(ブラウザ)からアクセスできないため必須です。
参考:Angular CLI の ng serve リファレンス

ブラウザで http://localhost:4200 にアクセスし、初期画面が表示されれば成功です!

image.png

まとめ

この構成のメリットは、

  • PCを買い替えても、Dockerさえあれば数分で同じ開発環境が戻ってくる
  • チーム開発の場合、チームメイトと環境の差異が起きにくい

ことです。ぜひやってみてください。

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