参考動画
https://www.youtube.com/watch?v=lZD1MIHwMBY&t=4506s
【Dockerfile作成】
①Dockerイメージを作成する(docker image build -t sample/santra:latest .)
①Dockerコンテナを起動させる
②Dockerコンテナに入る
③ライブラリのインストールやアプリケーションを動かす
④ ③でうまくいったコマンドをDockerファイルに記述する
⑤④のために作成したDockerイメージを削除する(docker container rm コンテナ名)
⑥
#①最初にrubyのバージョンを指定する
FROM ruby:2.7
#②作業ディレクトリを指定する。どこでもいい。
#ディレクトリがない場合は作成してくれる。
WORKDIR /var/www
#③作業ディレクトリの中にソースをコピーする
COPY ./src /var/www
RUN bundle config --local set path 'vendor/bundle'
RUN bundle install
RUN gem install rackup
RUN bundle add rackup
#④コマンド記載。最初にbashを起動してDockerを起動させる。
CMD ["bundle","exec","ruby","app.rb"]
コマンド ・docker container rum
【オプション】
・インタラクティブモードでDockerを起動 → -it
・ポート番号指定:-p
・コンテナ名指定:--name
・Dockerとローカルのソース同期:-v ${PWD}/src:/var/www ((ローカル):(Docker))
→これをしていないと、アプリケーションコードを修正したときに毎度イメージを作り直さなければ反映されなくなってしまう。
docker container run -it -p "ポート番号 XXXX(ローカル):XXXX(Docker)" --name "コンテナ名" -v ${PWD}/src:/var/www sample/sinatra:latest(イメージ名)
コマンド docker container rm コンテナ名
【エラー解消】
● Dockerイメージ作成ができない
XXXX~$ docker image build -t sample/sinatra:latest .
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
https://docs.docker.com/go/wsl2/
<解決方法>
Docker DesktopでUbuntuを有効にする
https://qiita.com/chovin/items/3057b35b776f70c3bcb5