gpt4 book ai didi

ruby - 在 Docker for Windows 上构建镜像时 gem 安装失败

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:23 24 4
gpt4 key购买 nike

我正在尝试从 Dockerfile 构建 Docker 镜像。图片取自最新node:alpine图像。它在其上安装了 Ruby 和一些 gem。这是 Dockerfile:

FROM node:alpine
ENV BUNDLE_SILENCE_ROOT_WARNING=1 BUNDLE_APP_CONFIG=/usr/local/bundle \
BUNDLE_BIN=/usr/local/bundle/bin BUNDLE_PATH=/usr/local/bundle
RUN apk add ruby ruby-io-console ruby-bundler ca-certificates \
build-base ruby-dev ruby-json libffi-dev \
python zlib-dev --no-cache && \
update-ca-certificates

WORKDIR /opt/middleman
COPY Gemfile* ./
RUN bundle install --clean
COPY package.json ./
RUN npm install

我可以在 Linux 和 MacOS 上构建镜像,但在 Windows 上, bundle 程序随机失败,每次都在不同的 gem 上,并显示以下消息:

Gem::RemoteFetcher::FetchError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A (https://rubygems.org/gems/rack-2.0.1.gem)

我用谷歌搜索了 SSL 错误,大多数解决方案都建议安装一些 SSL 证书。但是,在我的例子中,基本的 Docker 镜像是相同的。只有 Docker 主机操作系统不同。如果问题出在 SSL 证书上, bundle 程序总是会在第一个 gem 上失败,而不是每次都是随机的。所以我的猜测是当 Docker 在 Windows 上运行时有问题,但我已经没有想法了。有帮助吗?

PS:我确保所有机器都有相同的 node:alpine 快照,恰好是这样的:

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node alpine 37434f668ea8 30 hours ago 55.3 MB

更新:

  1. 我还尝试构建 quick-start Rails image它失败了。
  2. 我尝试使用较旧的 Docker 工具箱构建快速启动镜像,该工具箱使用 VirtualBox 而不是 Hyper-V。它再次失败,每次都在不同的 gem 上,但错误现在不同了:

    Gem::RemoteFetcher::FetchError: Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/gems/minitest-5.10.1.gem)

不过,仍然是一个 SSL 错误。

最佳答案

感谢您的所有评论。我终于找到了罪魁祸首。这是我的 Killer Wireless 网卡的“功能”……为了将来引用,我不得不在“Killer Network Manager”应用程序中禁用“Advanced Stream Detect”。这是一个屏幕截图:

SSL Killer

他们或许应该称之为 SSL killer 。

关于ruby - 在 Docker for Windows 上构建镜像时 gem 安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com