我构建了一个Docker映像来运行用于GA4咨询的Web API.它在我的开发机器上运行得很好,但在生产环境(Centos 7服务器)上,它无法构建映像并返回以下错误:

[+] Building 202.3s (8/10)                                       docker:default
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load build definition from dockerfile                       0.0s
 => => transferring dockerfile: 308B                                       0.0s
 => [internal] load metadata for docker.io/library/ruby:3.1.2              0.3s
 => [1/6] FROM docker.io/library/ruby:3.1.2@sha256:7681a3d37560dbe8ff7d0a  0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 3.65kB                                        0.0s
 => CACHED [2/6] WORKDIR /app                                              0.0s
 => CACHED [3/6] COPY Gemfile Gemfile.lock ./                              0.0s
 => ERROR [4/6] RUN gem install bundler:2.2.28                           201.8s
------
 > [4/6] RUN gem install bundler:2.2.28:
121.3 ERROR:  Could not find a valid gem 'bundler' (= 2.2.28), here is why:
121.3           Unable to download data from https://rubygems.org/ - SocketError: Failed to open TCP connection to rubygems.org:443 (getaddrinfo: Temporary failure in name resolution) (https://rubygems.org/specs.4.8.gz)
------
dockerfile:7
--------------------
   5 |     COPY Gemfile Gemfile.lock ./
   6 |
   7 | >>> RUN gem install bundler:2.2.28
   8 |     RUN bundle install
   9 |
--------------------
ERROR: failed to solve: process "/bin/sh -c gem install bundler:2.2.28" did not complete successfully: exit code: 2

我的Dockerfile:

FROM ruby:3.1.2

WORKDIR /app

COPY Gemfile Gemfile.lock ./

RUN gem install bundler
RUN bundle install

COPY . .

EXPOSE 3000

CMD ["rails", "server", "-b", "0.0.0.0"]`

运行该命令时:

docker build -t api .

我得到了前面的错误.

推荐答案

似乎您的生产服务器上的坞站容器无法访问互联网或至少无法访问域名解析解决方案的域名,因此出现错误消息. 您的物理服务器可以访问互联网吗?如果是,则判断为什么您的坞站容器与互联网隔离(查找坞站网络)

干杯

Ruby-on-rails相关问答推荐

未捕获语法错误:try 编辑TRIX时,请求的模块未在Rails 7.1中提供名为默认的导出(在youtube.js:1:8)

Rails 7.1中的覆盖脚手架控制器

如何在嵌套路由中使用Ruby on rails多态关联

Rails HMAC - 使用应用程序机密作为加密密钥

如何在测试期间为 Rails 应用程序启用 Rails.cache 会话对象

Ruby on Rails/Activerecord 排序自引用查询?

组合 active_record 模型并按共享属性排序

有没有一种简单的方法可以让 pow 为 https 服务?

你能从 Heroku dynos/workers 中获得多少性能?

禁用冻结字符串文字注释判断

在 Ruby on Rails 中获取空临时目录的最佳方法是什么?

在 PostgreSQL 中强制字符串的最大长度

遇到在早期版本的 Rails 中使用 attr_accessible 的情况时,Rails 4 中的禁止属性错误

保存后重定向到索引而不是显示

Rails Devise:设置密码重置令牌并重定向用户

如何仅使用 PostgreSQL 创建简单的模糊搜索?

Rails:一次添加多个 flash[:notice] 的简单方法

从 Rails 中的 ActiveRecord::RecordNotFound 救援

t.belongs_to 在迁移

为什么 rails bootstrap 这么慢,我该怎么办?