はじめに
前回の続きです。
[Dockerで最低限のrails開発環境をコツコツ構築してみる〜第1章〜]
(https://qiita.com/ii_km/items/0c27d590fc333e6b13d5)
ゴール
docker run -d --name minimum -it -v $PWD:/app -p 3000:3000 --expose 3000 minimum
root@41febcaa682c:/app# rails server -d -b 0.0.0.0
前回のこの辺のコマンドは長いし毎回実行するのは面倒なのでdocker-composeで解決する。
準備
前回の続きなので、実際に動かしながら読んでいただく場合は、gitからcloneしていただけると...
$ git clone git@github.com:IkumiIdei/rails_minimum.git
docker-compose.yml作成
docker-compose.ymlをDockerfileと同じ階層に作成します。
$ touch docker-compose.yml
docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
command: bash -c "rm -f /app/tmp/pids/server.pid && rails server -b 0.0.0.0"
説明 | |
---|---|
build: [Dockerfile配置ディレクトリ] | ビルド対象のDockerfile指定 |
ports: [ホスト側ポート]:[コンテナ側ポート] | ポート割り当て設定 |
volumes: [ホスト側相対パス]:[コンテナ側相対パス] | ボリュームの指定 |
command: [実行コマンド] | コンテナ起動時の実行コマンド |
イメージをビルド
upコマンドでイメージのビルドからコンテナの起動まで一気に行います。
$ docker-compose up -d
コンテナの状況を確認してみます。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3eb28149350 minimum_app2_web "bash -c 'rm -f /app…" About a minute ago Up 59 seconds 0.0.0.0:3000->3000/tcp minimum_app2_web_1
起動していそうです。