質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

1回答

2075閲覧

: Bind for 0.0.0.0:3000 failed: port is already allocated

divclass123

総合スコア35

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/04/05 09:54

編集2021/04/05 11:08

前提・実現したいこと

docker-compose up

を実行したら、

ERROR: for coffee_passport_web_1 Cannot start service web: driver failed programming external connectivity on endpoint coffee_passport_web_1 (1081a4ddfadb3546143112895eaee53e0ffa41b4a5440bedaac35aed32d5ff1d): Bind for 0.0.0.0:3000 failed: port is already allocated ERROR: for web Cannot start service web: driver failed programming external connectivity on endpoint coffee_passport_web_1 (1081a4ddfadb3546143112895eaee53e0ffa41b4a5440bedaac35aed32d5ff1d): Bind for 0.0.0.0:3000 failed: port is already allocated ERROR: Encountered errors while bringing up the project.

が出てしまいました。

試したこと

docker ps

を入力しても

ocker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24d4cc7dfa0a mysql:5.7 "docker-entrypoint.s…" 29 seconds ago Up 28 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp coffee_passport_db_1

と3000番ポートと結びついてるコンテナはない

Dockerfile(ファイルの詳細は以下記述)のEXPOSE 3000 を 30001にしたら

Step 15/20 : RUN bundle exec rails webpacker:compile ---> Running in 888f08227851 bundler: failed to load command: rails (/usr/local/bundle/bin/rails) Bundler::GemNotFound: Could not find marcel-1.0.0 in any of the sources /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/spec_set.rb:86:in `block in materialize' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `map!' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/spec_set.rb:80:in `materialize' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/definition.rb:170:in `specs' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/definition.rb:237:in `specs_for' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/definition.rb:226:in `requested_specs' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:101:in `block in definition_method' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:20:in `setup' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler.rb:149:in `setup' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/setup.rb:20:in `block in <top (required)>' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/ui/shell.rb:136:in `with_level' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/ui/shell.rb:88:in `silence' /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/setup.rb:20:in `<top (required)>' ERROR: Service 'web' failed to build : The command '/bin/sh -c bundle exec rails webpacker:compile' returned a non-zero code: 1

とエラー内容が変わった。

該当のソースコード

Dockerfile

1FROM ruby:2.6.5 2 3## nodejsとyarnはwebpackをインストールする際に必要 4# yarnパッケージ管理ツールをインストール 5 6RUN curl http://deb.debian.org/debian/dists/buster/main/binary-amd64/by-hash/SHA256/935deda18d5bdc25fb1813d0ec99b6e0e32a084b203e518af0cf7dc79ee8ebda | head 7 8RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ 9curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ 10echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ 11apt-get update && apt-get install -y yarn 12 13 14RUN /bin/sh -c /bin/sh -c bundle update --bundler 15RUN gem install bundler:2.1.4 16 17RUN mkdir /coffee_passport 18WORKDIR /coffee_passport 19COPY Gemfile /coffee_passport/Gemfile 20COPY Gemfile.lock /coffee_passport/Gemfile.lock 21RUN bundle update rails 22RUN bundle update 23RUN bundle install 24COPY . /coffee_passport 25 26RUN yarn install --check-files 27RUN bundle exec rails webpacker:compile 28 29# Add a script to be executed every time the container starts. 30COPY entrypoint.sh /usr/bin/ 31RUN chmod +x /usr/bin/entrypoint.sh 32ENTRYPOINT ["entrypoint.sh"] 33EXPOSE 3000 34 35# Start the main process. 36CMD ["rails", "server", "-b", "0.0.0.0"]

entrypoint.sh

#!/bin/bash set -e # Remove a potentially pre-existing server.pid for Rails. rm -f /coffee_passport/tmp/pids/server.pid # Then exec the container's main process (what's set as CMD in the Dockerfile). exec "$@"

rails sをした覚えがありますが、切ったはずですし、ターミナルも一回再起動しました。

ホスト側の3000番portを強制的に開放させるコマンドを実行すれば解決するのでしょうか?
またその、コマンドを御教授いただければ幸いです。

関係ないかもしれませんが、

https://qiita.com/naoki85/items/51a8b0f2cbf949d08b11

この記事の
bin/serverとかやったので、それが関係してるのかもしれないです、、、。

またDocker Desktop を再起動したら

[15/17] RUN bundle exec rails webpacker:compile: #19 0.716 bundler: failed to load command: rails (/usr/local/bundle/bin/rails) #19 0.716 Bundler::GemNotFound: Could not find marcel-1.0.0 in any of the sources

とエラー内容が変わりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2021/04/05 10:06

entrypoint.sh を記載してください。
divclass123

2021/04/05 10:39

追記させていただきました。よろしくお願いします。
guest

回答1

0

Bind for 0.0.0.0:3000 failed: port is already allocated

このメッセージが出るのは、何らかのプログラムが既にポート 3000 を使用していて起動できないといった内容です。既に再起動されて解消されたようですが、Docker Desktop の再起動を行っても問題無い環境であれば、それがスムーズな解決方法でしょう。

経験上、既に再起動済みなので原因は分かりませんが、とにかく何かがポート 3000 を掴んだままだったように見えます。

ちなみに、記述された Dockerfile では Step 8/20 で Gemfile がないので止まりました。ステップ 15 で止まった原因は分かりませんが、何かイメージのビルド中に問題が起こっているのかもしれません。何か参考にされたサイトや URL などありましたら、共有いただけると何か解決の糸口が見つかるかもしれません。

投稿2021/04/05 21:42

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

divclass123

2021/04/07 07:50

御回答ありがとうございます。ローカル上でbudle updateとかbundle update mimemagicをやったら動きました。 >ちゃんと設定できてる上でDocker上で行えば動くはずですね ローカルでやってうまくいったならDockerのvolumeの設定とかがやっぱりおかしそうです と他の人からも教えてもらったので原因は不明ですが、解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問