Docker为webpacker_dev_服务器加载了不正确的端口

Docker为webpacker_dev_服务器加载了不正确的端口,docker,webpack-dev-server,ruby-on-rails-5.2,Docker,Webpack Dev Server,Ruby On Rails 5.2,我正在学习将rails 5部署到docker。在我安装react webpacker之前,一切正常。它似乎试图连接到错误的端口,并导致反应故障 我尝试过更新正在开发中的config/webpacker.yml:dev_server:host=0.0.0.0,但仍然不起作用 错误日志如下所示 web_1 | #<SocketError: Failed to open TCP connection to webpack_dev_server:3035:80 (g

我正在学习将rails 5部署到docker。在我安装react webpacker之前,一切正常。它似乎试图连接到错误的端口,并导致反应故障

我尝试过更新正在开发中的config/webpacker.yml:dev_server:host=0.0.0.0,但仍然不起作用

错误日志如下所示

web_1                 | #<SocketError: Failed to open TCP connection to webpack_dev_server:3035:80 (getaddrinfo: Name or service not known)>
web_1                 | /usr/local/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'
web_1                 | /usr/local/lib/ruby/2.6.0/net/http.rb:946:in `block in connect'
web_1                 | /usr/local/lib/ruby/2.6.0/timeout.rb:93:in `block in timeout'
web_1                 | /usr/local/lib/ruby/2.6.0/timeout.rb:103:in `timeout'
web_1                 | /usr/local/lib/ruby/2.6.0/net/http.rb:945:in `connect'
web_1                 | /usr/local/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
web_1                 | /usr/local/lib/ruby/2.6.0/net/http.rb:925:in `start'
web_1                 | /usr/local/bundle/gems/rack-proxy-0.6.5/lib/rack/http_streaming_response.rb:71:in `session'
web_1                 | /usr/local/bundle/gems/rack-proxy-0.6.5/lib/rack/http_streaming_response.rb:60:in `response'
web_1                 | /usr/local/bundle/gems/rack-proxy-0.6.5/lib/rack/http_streaming_response.rb:29:in `headers'
web_1                 | /usr/local/bundle/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:120:in `perform_request'
web_1                 | /usr/local/bundle/gems/webpacker-3.6.0/lib/webpacker/dev_server_proxy.rb:20:in `perform_request'
web_1                 | /usr/local/bundle/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57:in `call'
web_1                 | /usr/local/bundle/gems/railties-5.2.4.3/lib/rails/engine.rb:524:in `call'
web_1                 | /usr/local/bundle/gems/puma-3.12.6/lib/puma/configuration.rb:227:in `call'
web_1                 | /usr/local/bundle/gems/puma-3.12.6/lib/puma/server.rb:706:in `handle_request'
web_1                 | /usr/local/bundle/gems/puma-3.12.6/lib/puma/server.rb:476:in `process_client'
web_1                 | /usr/local/bundle/gems/puma-3.12.6/lib/puma/server.rb:334:in `block in run'
web_1                 | /usr/local/bundle/gems/puma-3.12.6/lib/puma/thread_pool.rb:135:in `block in spawn_thread'
我的档案是

git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.6'

gem 'rails', '~> 5.2.4', '>= 5.2.4.3'
gem 'pg', '~> 1.0'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'redis', '~> 4.0'
gem 'webpacker', '~> 3.5'
gem 'bootsnap', '>= 1.1.0', require: false

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end


# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
git_源代码(:github){| repo |”https://github.com/#{repo}.git}
ruby“2.6.6”
gem'rails','~>5.2.4','>=5.2.4.3'
gem'pg',“~>1.0”
宝石“彪马”,“大于3.11”
gem'sass-rails',“~>5.0”
gem'uglifier','>=1.3.0'
gem“咖啡轨”,“~>4.2”
gem“涡轮链接”,“大于5”
gem'jbuilder',“~>2.5”
gem'redis',“~>4.0”
gem'webpacker',“~>3.5”
gem'bootsnap','>=1.1.0',require:false
小组:开发,:测试
gem'byebug',平台:[:mri,:mingw,:x64_mingw]
结束
小组:发展怎么办
gem“web控制台”,“>=3.3.0”
gem'listen','>=3.0.5','<3.2'
宝石“春天”
gem‘SpringWatcherListen’,“~>2.0.0”
结束
#Windows不包括zoneinfo文件,因此捆绑tzinfo数据
gem'tzinfo data',平台:[:mingw,:mswin,:x64_mingw,:jruby]

我希望你做得很好

最近,我遇到了与您相同的问题,出现了以下错误:

#
经过一些研究,我发现宫崎骏的博客也有同样的问题

基本上,您只需将
webpack\u dev\u服务器
服务名称更改为
webpack dev服务器
。因此,您的
docker compose.yml
将变成如下所示:

services:

  web:
    build: .
    ports:
      - 3000:3000
    volumes:
      - .:/usr/src/app
    env_file:
      - .env/development/database
      - .env/development/web
    environment:
      - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server

  webpack-dev-server:
    build: .
    command: ./bin/webpack-dev-server
    ports:
      - 3035:3035
    volumes:
      - .:/usr/src/app
    env_file:
      - .env/development/database
      - .env/development/web
    environment:
      - WEBPACKER_DEV_SERVER_HOST=0.0.0.0

  redis:
    image: redis

  database:
    image: postgres
    env_file:
      - .env/development/database
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:
注意:如果您在其他地方引用了
webpack\u dev\u server
,您可能还需要重命名它。

请查看更多详细信息

我希望有帮助


非常感谢@rodrigo marques。我要试一试。显然,当推到Prod时,它只是工作,但是很高兴知道这是否修复了本地开发人员机器。接受您的答案。事实上,我确实偶然发现了三宅一生的博客,但不知何故,我没有使用谷歌翻译(哈哈,谷歌翻译拯救了我的一天,因为我撞到了那个博客。你在生产中没有任何问题,因为它的“网页包开发服务器”通常只用于开发环境。^^问题是机架版本,我的应用程序正在机架上运行(2.2.3)。要重建,请运行
docker compose up-d--强制重新创建--删除孤立的网页包开发服务器
,并删除旧的。
services:

  web:
    build: .
    ports:
      - 3000:3000
    volumes:
      - .:/usr/src/app
    env_file:
      - .env/development/database
      - .env/development/web
    environment:
      - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server

  webpack-dev-server:
    build: .
    command: ./bin/webpack-dev-server
    ports:
      - 3035:3035
    volumes:
      - .:/usr/src/app
    env_file:
      - .env/development/database
      - .env/development/web
    environment:
      - WEBPACKER_DEV_SERVER_HOST=0.0.0.0

  redis:
    image: redis

  database:
    image: postgres
    env_file:
      - .env/development/database
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data: