24
22

More than 3 years have passed since last update.

Docker × Angular環境簡単構築

Last updated at Posted at 2020-01-08

Docker × Angular環境簡単構築

概要

Dockerを利用して、Angularの実行環境を簡単に作成していきます。

環境

  • macOS Catalina 10.15.1
  • Docker version 19.03.5
  • docker-compose version 1.24.1

構成

今回は以下のような構成になります。

.
├── docker
│   └── node
│       └── Dockerfile
├── docker-compose.yml
└── server
    └── angular-app

構築

1. docker-compose.yml作成

今回はシンプルにangularの実行環境を用意することが目的なため、コンテナはnodeのみでOK!

docker-compose.yml
version: '3'

services:
  node:
    build: ./docker/node
    ports:
      - "4200:4200"
    volumes:
      - "./server:/projects"
    tty: true

2. Dockerfile作成

nodeイメージの最新を取得し、npmを利用してangularをインストールします。

FROM node

WORKDIR /projects

RUN npm install @angular-devkit/build-angular
RUN npm install -g @angular/cli

EXPOSE 4200

3. dockerの起動&ビルド

// ビルド&バックグラウンドで起動
$ docker-compose up -d

// 確認
$ docker-compose ps
# 以下のようになっていればOK!
     Name                 Command            State           Ports         
---------------------------------------------------------------------------
angular_node_1   docker-entrypoint.sh node   Up      0.0.0.0:4200->4200/tcp

4. Angularアプリの作成 or 引き継ぐ場合

ng new {プロジェクト名}をコンテナ内で実行!

// コンテナにインスペクション
$ docker-compose exec node bash

// コンテナ内でAngularアプリ作成
root@8dfd8ec7933f:/projects# ng new angular-app

// 引き継ぐ場合(gitで共有された場合など)
root@8dfd8ec7933f:/projects# npm install

5. Angularアプリを起動

コンテナ内でAngularアプリを起動します。

// 作成したAngularアプリ直下に移動
root@8dfd8ec7933f:/projects# cd /projects/angular-app

// Angularアプリの起動
root@8dfd8ec7933f:/projects/angular-app# ng serve --host 0.0.0.0

※ package.jsonがないディレクトリでアプリ起動コマンドを実行すると以下のエラーが出ます。
The serve command requires to be run in an Angular project, but a project definition could not be found.

確認

下記のURLにアクセスしてみましょう!
http://localhost:4200/
以下の画像のような画面が表示されたら成功です。

スクリーンショット 2020-01-08 10.29.48.png

参考

24
22
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
24
22