que*_*vqz 11 ruby ruby-on-rails docker dockerfile docker-compose
docker 新手,我一直在尝试将它与我的 rails 项目一起使用,但无法启动它。
尝试更改 ruby 版本并搜索网络,但大多数问题都涉及将应用程序部署到 heroku,这不是我的情况。
码头工人文件:
FROM ruby:2.4.1
RUN mkdir /zssn
WORKDIR /zssn
COPY Gemfile /zssn/Gemfile
COPY Gemfile.lock /zssn/Gemfile.lock
RUN gem install bundler
RUN bundle --version
RUN bundle install
COPY . /zssn
CMD ["rails", "server"]
Run Code Online (Sandbox Code Playgroud)
docker-compose-yml
version: '3'
services:
web:
build: .
command: rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/zssn
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)
码头工人建造。--no-cache,在运行 bundler 命令来安装它时似乎工作正常。
---> Running in d4650608f428
Successfully installed bundler-2.0.1
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
que*_*vqz 15
在 RUN bundle install 到 Dockerfile 之前添加这一行对我来说很有用。
RUN gem install bundler -v 2.0.1
Run Code Online (Sandbox Code Playgroud)
留在这里以备将来参考!
Ruby 映像随安装的bundler. 环境变量默认BUNDLER_VERSION设置为预安装版本。bundler即使您卸载此版本,bundle如果 v1/v2 不匹配,也会检查此环境变量并引发错误“您必须将 Bundler 2 或更高版本与此锁定文件一起使用”
确保您Gemfile.lock捆绑了所需的版本:
BUNDLED WITH
2.1.4
Run Code Online (Sandbox Code Playgroud)
如果您有其他版本,可以通过运行bundle update --bundler https://bundler.io/man/bundle-update.1.html将应用程序升级到最新安装的 Bundler 版本
在Dockerfile覆盖环境变量BUNDLER_VERSION到所需版本的捆绑器并安装它:
ENV BUNDLER_VERSION=2.1.4
RUN gem update --system && \
gem install bundler:2.1.4 && \
bundle install
Run Code Online (Sandbox Code Playgroud)
您需要更新 Rubygems:
RUN gem update --system
Run Code Online (Sandbox Code Playgroud)
除了确保您拥有正确的捆绑程序版本外,请运行:
RUN gem install bundler -v 2.0.1
Run Code Online (Sandbox Code Playgroud)
在这里你可以找到一个深刻的解释。
| 归档时间: |
|
| 查看次数: |
10657 次 |
| 最近记录: |