Dockerfile, Gemfile, Gemfile.lock, docker-compose.ymlだけ用意して、
Railsのコンテナを立ち上げようと$docker-compose build .したところ、
$docker-compose build .
ERROR: No such service: .
というエラーが出た。
##やってみたこと①
調べてみて、カレントディレクトリで起動しない時は
docker-compose.ymlに、container_nameの環境変数を設定し、コンテナ名指定でbuildしたらいいとのこと。
container_name: <任意のcontainername(以下x)>
を追記して、$docker-compose build xを実行。
しかし、
ERROR: No such service: X
とまたエラーが。
###やってみたこと②
$ docker-compose up --build
buildだけではなく、upにbuildオプションをつけて実行。
ERROR: for x Cannot start service app: driver failed programming external connectivity on endpoint x (1a6e5c0ea852dd7d3b92a0456e83a1c17880e38a71563eb3a350693ca620b1ab): Bind for 0.0.0.0:3000 failed: port is already allocated
ERROR: for app Cannot start service app: driver failed programming external connectivity on endpoint x(1a6e5c0ea852dd7d3b92a0456e83a1c17880e38a71563eb3a350693ca620b1ab): Bind for 0.0.0.0:3000 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
そうすると指定したportがすでに使われているとのエラーが出たので、portを3000:3000から8080:8080に変更して再度$docker-compose up --build
を実行。
エラーが出ずきちんと走ったので、buildできるかと思ったが、
Attaching to X
で止まってしまった。
###やってみたこと③
$docker-compose --verbose build --no-cache
キャッシュ無視でbuildを実行したところ、
Successfully built 1e7c8561a9d9
Successfully tagged foldername_app:latest
compose.cli.verbose_proxy.proxy_callable: docker close <- ()
compose.cli.verbose_proxy.proxy_callable: docker close -> None
でbuildが成功した。
$ docker-compose ps
Name Command State Ports
-----------------------------------------------
x irb Exit 1
StatusがExitになっていたので、$docker restart x
で再起動したらUPになった。