Dockerを利用してRubyを構築する。
まずDocker HubからDocker for Macをインストールする。
Docker HubからrubyのDocker Official Images を検索
今回は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
画面が表示される。
#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