55930


現在、DockerCompose+Rails+pumaでローカル開発環境を構築しています。  
その際にDocker内でrails sを実行すると

[code]

    root@e455bb5e4d41:/home# rails s
    => Booting Puma
    => Rails 5.1.7 application starting in development
    => Run `rails server -h` for more startup options
    Puma starting in single mode...
    * Version 3.12.1 (ruby 2.5.5-p157), codename: Llamas in Pajamas
    * Min threads: 5, max threads: 5
    * Environment: development
    * Listening on tcp://localhost:3000
    Exiting
    Traceback (most recent call last):
    ~~~~
    /usr/local/bundle/gems/puma-3.12.1/lib/puma/binder.rb:273:in `initialize': Address already in use - bind(2) for "0.0.0.0" port 3000 (Errno::EADDRINUSE)
    
[/code]

というエラーが出ます。  
そこで、使用ポートを調べる為に

[code]

    root@e455bb5e4d41:/home# lsof -i
    
[/code]

を実行した所、何も表示されませんでした。  
何故この様なエラーになるのでしょうか？ご回答いただけると助かります。

以下に関係あるかわかりませんが、dockerのpsとpumaのコンフィグを書かせていただきます。

docker ps

[code]

    CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS                    NAMES
    e455bb5e4d41        hoge   "irb"               13 hours ago        Up 4 minutes        0.0.0.0:3000->3000/tcp   hoge
    
[/code]

config/puma/development.rb

[code]

    port        3000
    
    environment "development"
    
    plugin :tmp_restart
    
    bind 'tcp://0.0.0.0:3000'
    
    daemonize false
    
[/code]


CC BY-SA 4.0
2019-06-20T00:45:50.357
55929
2019-06-20T05:09:49.717
2019-06-20T05:09:49.717
3060
15186
question
ruby-on-rails docker
rails s時にAddress already in useと言われるが、lsofでは使用中ポートに表示されない


すみません、自己解決しました。  
pumaの`port 3000`と`bind 'tcp://0.0.0.0:3000'`を２重に記述していた為でした。  
申し訳ありませんでした。


CC BY-SA 4.0
2019-06-20T01:43:23.747
55930
2019-06-20T01:43:23.747
15186
55929
answer