Docker for MacでAngular8の実行環境を構築
以前にDockerでAngularのアプリを実行できる環境をご紹介したのですがAngularもnodeも新しくなったので改めてご紹介したいと思います。
環境
- Docker: 19.03.1
- Node.js: 10.16.3
- Angular CLI: 8.3.2
- Angular: 8.2.4
dockerファイルの作成
まず作業ディレクトリにdockerfileを作成します。
FROM node:10.16.3 RUN npm install -g @angular/cli EXPOSE 5656
Angularアプリを複数管理しているとポートがバッティングするので適当に変えてみます。
dockerイメージの作成
次にdockerfileをビルドしてdockerイメージを作成しましょう。
$ docker build -t docker-angular:angular8 .
-tオプションでタグをつけます。
$ docker image ls //確認 REPOSITORY TAG IMAGE ID CREATED SIZE docker-angular angular8 701699c0561d 3 minutes ago 943MB
コンテナの作成&起動
angularのプロジェクトを作成したい場所で実行します。
$ docker run -it --hostname docker-angular02 --name docker-angular02 -v $PWD:/mnt/angular-app -p 5656:4200 docker-angular:angular8 bash root@docker-angular02:/# ←作成と同時に起動しrootにログインする
・-vでマウント 'ホストパス':'コンテナパス'
ホスト側でコードの編集ができるよう、「ホスト側の作業ディレクトリ」と「コンテナ上の/mnt」をマウントします。
・-pでポートフォワード
ホストのブラウザからアクセスできるようAngularがデフォルトで使用する4200ポートを結びつけます。
コンテナ内での作業
angularアプリを作成します。
cd mnt/ ng new angular-app
続けてAngularアプリを起動します。
# ng serve --host 0.0.0.0 ** Angular Live Development Server is listening on 0.0.0.0:4200, open your browser on http://localhost:4200/ ** 「wdm」: Compiled successfully.
ブラウザから localhost:5656
で画面が確認できます。
これでAngularアプリの開発ができるようになりました。
ngコマンド、npmコマンドを実行する際はコンテナ内で実行しましょう。