Dockerを使ってWebアプリを開発

目的

Dockerの知識を深める。また、勤怠管理アプリを作成し、Webアプリの知識も深める。

やることは以下。

1.勤怠管理アプリ(簡易)を作成する。(vue.js、java等で作る)

2.AWSのEC2にDockerをインストールし、Docker上で勤怠管理アプリを動かし公開する。

Dockerとは

Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォームです。

Dockerは、Linuxのコンテナ技術を使ったもので、よく仮想マシンと比較されます。VirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かします。それに対し、コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができます。そのため、軽量で高速に起動、停止などが可能です。

参考:https://knowledge.sakura.ad.jp/13265/

勤怠管理アプリ(簡易)の構成

f:id:Ry7:20200308221845p:plain

勤怠管理アプリ(簡易)

【機能】

ログインし、日々の勤怠を登録できる。

管理者の機能は今回実装しない。

↓↓↓ ログインはこちらから(URLはまた変更します) ↓↓↓

ログイン

 

【ソース】

   Nuxt.jsを使用。

   SpringBootで作成。java8。

   このプロジェクトはdocker-compose.ymlのみ。

AWS 環境構築

  1. VPC作成
  2. サブネット作成
  3. ルートテーブル作成
  4. インターネットゲートウェイ作成
  5. キーペア作成
  6. セキュリティグループ作成
  7. EC2インスタンス作成

EC2にDocker等をインストール

  • インストール、起動
$ sudo yum update
$ sudo yum install -y docker
$ sudo service docker start
  • ec2-userをdockerグループに追加 
$ sudo usermod -a -G docker ec2-user
$ cat /etc/group |grep docker
  • docker-composeインストール  
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
  • mavenインストール(spring bootのアプリを実行するため)
$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
$ sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
$ sudo yum install -y apache-maven
$ mvn --version

プロジェクトをクローンしたら以下も実施
chmod +x mvnw

Gitメモ(覚書)

・git init

・git remote add <任意のリポジトリ名> <追加したいpush先のリポジトリ>

・git push <任意のリポジトリ名> <ブランチ名>

まとめ

Dockerを使えば、コマンド1つでフロントエンド、バックエンド、DBを起動できるので慣れるとかなり楽かも。

自分用メモ:起動するときログインURLとフロントAPIのパブリックDNSを修正すること