Ruby 和 Rails 内部人士 docker
Ruby and Rails insider docker
我在 Rails 应用程序上有一个 Ruby 运行ning 正在使用 docker 构建。我 运行 docker-compose build
和 docker-compose up
命令没有问题。它按预期旋转图像和 运行s puma。
安装的 gem 只是 rails 6.1.5.1
和 puma 5.6.4
这是 docker-compose up
的输出:
my_app | ENVIRONMENT: development
my_app | The Gemfile's dependencies are satisfied
my_app | => Booting Puma
my_app | => Rails 6.1.5.1 application starting in development
my_app | => Run `bin/rails server --help` for more startup options
my_app | Puma starting in single mode...
my_app | * Puma version: 5.6.4 (ruby 3.0.4-p208) ("Birdie's Version")
my_app | * Min threads: 5
my_app | * Max threads: 5
my_app | * Environment: development
my_app | * PID: 9
my_app | * Listening on http://0.0.0.0:3000
my_app | Use Ctrl-C to stop
但是,如果我运行下面的命令:
docker-compose run --rm my_app rails db:drop db:create db:migrate;
我收到以下错误:
ENVIRONMENT: development
The Gemfile's dependencies are satisfied
Could not find rails-6.1.5.1 in any of the sources
Run `bundle install` to install missing gems.
如果我运行:
docker-compose run --rm my_app sh
它让我进入 shell 提示。从此提示中,我键入 rails --version
it returns Rails 6.1.5.1
的正确版本。如果我 运行、rails db:drop
,我会得到以下结果:
Could not find rails-6.1.5.1 in any of the sources
Run `bundle install` to install missing gems.
如果我 运行 gem list rails
,它会显示 rails 个具有正确版本的库列表:
rails (6.1.5.1)
sprockets-rails (3.4.2)
有人遇到过这样的问题吗?
你能试试这个吗:
- 以本机方式在您的电脑上安装相应的 ruby 版本(没有 docker)
- 运行
bundle install
这将更新您的 Gemfile.lock
- 尝试通过 运行
docker-compose build --no-cache
再次构建您的图像
我在 Rails 应用程序上有一个 Ruby 运行ning 正在使用 docker 构建。我 运行 docker-compose build
和 docker-compose up
命令没有问题。它按预期旋转图像和 运行s puma。
安装的 gem 只是 rails 6.1.5.1
和 puma 5.6.4
这是 docker-compose up
的输出:
my_app | ENVIRONMENT: development
my_app | The Gemfile's dependencies are satisfied
my_app | => Booting Puma
my_app | => Rails 6.1.5.1 application starting in development
my_app | => Run `bin/rails server --help` for more startup options
my_app | Puma starting in single mode...
my_app | * Puma version: 5.6.4 (ruby 3.0.4-p208) ("Birdie's Version")
my_app | * Min threads: 5
my_app | * Max threads: 5
my_app | * Environment: development
my_app | * PID: 9
my_app | * Listening on http://0.0.0.0:3000
my_app | Use Ctrl-C to stop
但是,如果我运行下面的命令:
docker-compose run --rm my_app rails db:drop db:create db:migrate;
我收到以下错误:
ENVIRONMENT: development
The Gemfile's dependencies are satisfied
Could not find rails-6.1.5.1 in any of the sources
Run `bundle install` to install missing gems.
如果我运行:
docker-compose run --rm my_app sh
它让我进入 shell 提示。从此提示中,我键入 rails --version
it returns Rails 6.1.5.1
的正确版本。如果我 运行、rails db:drop
,我会得到以下结果:
Could not find rails-6.1.5.1 in any of the sources
Run `bundle install` to install missing gems.
如果我 运行 gem list rails
,它会显示 rails 个具有正确版本的库列表:
rails (6.1.5.1)
sprockets-rails (3.4.2)
有人遇到过这样的问题吗?
你能试试这个吗:
- 以本机方式在您的电脑上安装相应的 ruby 版本(没有 docker)
- 运行
bundle install
这将更新您的 Gemfile.lock - 尝试通过 运行
docker-compose build --no-cache
再次构建您的图像