Dockerを使用した環境開発構築〜自分用〜

Dockerを利用してRubyを構築する。
まずDocker HubからDocker for Macをインストールする。


Docker HubからrubyのDocker Official Images　を検索
<img width="1006" alt="スクリーンショット 2020-05-08 13.18.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599304/73e7f6f0-2ad1-d478-2f5c-5259fa68fd1b.png">

今回はRubyのvarは2.5.8-stretchをリンクとします。

次にRubyを使用するための「rails」というディレクトリを作成します。

```
% mkdir rails
```
そこにDockerfileとDocker-compose.yamlというファイルを作成します。

Dockerfileを作成。中身に以下を記述。

```
FROM ruby:2.5.8-stretch
```

Docker-compose.yamlを作成。中身に以下を記述。

```
version: '3'
services:
    app:
      build: .
      volumes:
        - ".:/app"
      ports:
        - "3000:3000"
      tty: true
```

ここまでできたらDockerを起動する。

```
% Docker-compose up

Creating rails_app_1 ... done
Attaching to rails_app_1
```

rails_app_1 ... done　とDockerが起動していることが分かる。

次にrails_app_1の中に入る。下記コードを入力する。

```
% docker exec -it rails_app_1 /bin/bash
```
中に入れたら lsコマンド実行

```
root@293a1d455450:/# ls
app  boot  etc   lib    media  opt   root  sbin  sys  usr
bin  dev   home  lib64  mnt    proc  run   srv   tmp  var
```

成功している。次にappに移動。

```
root@293a1d455450:/# cd app

root@293a1d455450:/app# ls
Docker-compose.yaml  Dockerfile
```
appの中にDocker-compose.yaml  Dockerfileが存在している。

次にRailsのinstallを実行。

```
root@293a1d455450:/app# gem install rails

40 gems installed
```

次にRails newを実行する。

```
root@293a1d455450:/app# rails new .
```
Railsの機能が実装される。

続いてrails sにて起動を試みるもエラーが発生。node.jsのバージョンが古い,yarnがインストールされていないとのこと。
node.jsの最新版をインストールする。

```
# 現在のバージョン確認
$ node -v
v4.9.1

# Node.jsのバージョン管理ツールnvmをclone
$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ echo . ~/.nvm/nvm.sh >> ~/.bashrc
$ . ~/.bashrc

# nvmバージョン確認
$ nvm --version
0.35.0

# インストールできるNode.jsの確認
$ nvm ls-remote

# 最新の安定版をインストール
$ nvm install stable

# バージョン確認
$ node -v
v12.12.0
```

続いてyarnをインストール

```
npm uninstall yarn -g
npm install yarn -g
```

最後にwebpackerをinstallする。

```
root@293a1d455450:/app# rails webpacker:install
```

rails sを入力

```
root@293a1d455450:/app# rails s -b 0.0.0.0
```

<img width="983" alt="スクリーンショット 2020-05-08 15.14.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599304/564aff21-7a6e-ee66-a527-8d3f5d508055.png">

画面が表示される。

#Docerコンテナの削除方法


```
$ docker ps -a
#docker psコマンドで現在のコンテナの稼働状況を確認します

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                    PORTS               NAMES
ec3adf42da5b        ruby                   "irb"                    5 days ago          Exited (1) 4 days ago                         ruby

$ docker rm ec3adf42da5b
#コマンド： docker rm [コンテナID]　にて行える。
```

#Dockerイメージの削除方法

```
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ruby                2.5.8-stretch       691ffb3b14d7        2 weeks ago         873MB
#docker imagesコマンドで現在のイメージを確認

$ docker rmi 691ffb3b14d7
Untagged: ruby:2.5.8-stretch
Untagged: ruby@sha256:f9cab274e34fe248de5afe21b8c9e260cf688a9f83ccd104c37ca0988088966b
Deleted: sha256:691ffb3b14d7a3378c2ad7bbbb10046418955657059b18331ab7d09529bec4ce
Deleted: sha256:63dbcef0cff8e96f41956fa38b6c111213c567e5444e027295f5ab1a143ec38c
Deleted: sha256:40ab52bd78571a0bb3270a77b870db94267b50d23571d68c64e72e6e7caef133
Deleted: sha256:7db200612ecc11f469e0f2360e699a7136cf50061900fcad2cde112537f1ed85
Deleted: sha256:58087153ded7ed5b95601cc4628dc0211372b93632eb86ee7c1397ca86afadc6
Deleted: sha256:08427ca5155ca0a53a4111beeb37a0dd25ebca3eeb5861ae8c1db3e635777b45
Deleted: sha256:c794ba8ed668c64d52b4e9540a3e2171a1576ae781c494138cea954a457a9771
Deleted: sha256:2975e9ede31ee709d15b6155737f1fd2fb1032397679591b41e709aba1fca47d
Deleted: sha256:86ab2c6c5d587c5805ad401b4c8beb4c3e61a8b832d7882d98da5070381bd86b


```