search
LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

$docker-compose build . でERROR: No such service: . のエラーが出た

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になった。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1