- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试让这个应用程序运行一段时间。它不会给我带来任何错误来构建它,并且当我的队友遵循相同的步骤时它就可以工作。但是,当我运行时
docker-compose run app bundle exec rake db:setup
我明白
Starting joatu-db ... done
Starting joatu-v2_bundler_1 ... done
/joatu/Gemfile not found
我尝试使用以下方式捆绑它:
docker-compose run app bundle install
我明白了
Starting joatu-v2_bundler_1 ... done
Starting joatu-db ... done
[!] There was an error parsing `Gemfile`: No such file or directory @ rb_sysopen - /joatu/Gemfile. Bundler cannot continue.
我运行的是 Windows 10 版本 1809
我在 WSL 上运行它:Ubuntu 18.04
Docker版本:docker引擎18.09
docker compose版本:1.24.0 rc-1
docker 文件是:
FROM ruby:2.4.5
MAINTAINER Robert JJ Smith <rsmithlal@gmail.com>
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs libssl-dev
RUN mkdir /joatu
WORKDIR /joatu
COPY Gemfile /joatu/Gemfile
COPY Gemfile.lock /joatu/Gemfile.lock
# Use a persistent volume for the gems installed by the bundler
ENV BUNDLE_GEMFILE=/joatu/Gemfile \
BUNDLE_JOBS=2 \
BUNDLE_PATH=/bundler \
GEM_PATH=/bundler \
GEM_HOME=/bundler
#RUN gem install bundler #tried with it and without it same error
RUN bundle install
COPY . /joatu
docker-compose.yml
version: '2.1'
volumes:
db-data:
services:
app:
container_name: joatu-app
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- $PWD:/joatu
volumes_from:
- bundler
ports:
- "3000:3000"
depends_on:
- db
links:
- db
env_file:
- './docker/.env.app.conf'
db:
container_name: joatu-db
volumes:
- db-data:/var/lib/postgresql/data
image: mdillon/postgis:latest
ports:
- 5432:5432
env_file:
- './docker/.env.app.conf'
bundler:
image: busybox
volumes:
- /bundler
我已将 .
更改为 $PWD
,然后再次更改回来尝试“取消屏蔽”,但仍然不起作用。
我已移至 Windows 中的不同文件夹以查看是否是权限问题。还是没用。而且,我已删除该镜像并重建它,以确保旧镜像不会干扰更改。
如有任何帮助,我们将不胜感激。
原始文件应用程序位于https://github.com/joatuapp/joatu-v2
编辑:
我运行了命令
docker-compose run app ls-la
显示该文件夹为空。所以,现在我知道这是一个复制问题,但我仍然不知道如何解决它。
最佳答案
我知道这是一个老话题,但如果有人遇到这个问题,我发现您需要指定稍微不同的文件夹:
将其更改为
volumes:
- $PWD:/joatu
这个
volumes:
- $PWD:/joatu/your-workdir
应该解决这个问题。
当你定义卷/joatu
时,你实际上是在访问容器内的路径/
,所以docker无法找到gemfile,因为它位于 >/joatu
。这可能只是一个 Window 问题,因为所有适用于 docker 的文档都建议使用 Dockerfile 中定义的相同路径。
关于ruby-on-rails - docker-compose 在 bundle 中找不到 gemfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54814608/
在 Gemfile 中指定第三方库的确切版本与使用 Gemfile.lock 之间有什么区别吗? 如果我在 Gemfile 中使用确切的版本,它是否与分发 Gemfile.lock 相同? 最佳答案
我想编写一个单元测试来检查我项目中的 Gemfile.lock 是否与 Gemfile 匹配,以防我忘记在提交前调用 bundle。 bundle 命令(或其他方法)是否有一个选项来检查这个? 注意
没有文件扩展名,我无法让语法高亮保持不变。这不是世界末日,但我很高兴拥有它。 如果我重命名 Gemfile 会破坏 Rails如 Gemfile.rb ? 最佳答案 看起来您可以重命名它,但是 bun
如何根据 Gemfile 的更改重新同步 Gemfile.lock。 假设 Gemfile 中有 3 个 gem(gem1、gem2、gem3)。 bundle install 创建一个 Gemfil
我想将我的 Gemfile 设置为使用来自有效 Gemfile.lock 的所有确切版本。 最简单的方法是什么? 我不想手动完成。 bundler 是否开箱即用。如果没有,是否有 gem? 澄清一下,
jekyll build 正在我的 _site 目录中创建一个 Gemfile 和 Gemfile.lock。 两个问题: 我应该担心在生产中包含这些文件吗? 如果是,我怎样才能防止生成它们? 接受任
从 Gemfile 生成 Gemfile.lock 后,是否有任何工具可以返回卡住 Gemfile 中的版本。我宁愿避免手动进行。 背景:在 gem 上卡住次要版本是一种很好的做法,例如如果 Gemf
我正在尝试将我的应用程序部署到 Heroku。我删除了 'sqlite3' gem 并将以下部分添加到我的 Gemfile 中: gem 'sqlite3', group: :development
我是 Ruby on Rails 的初学者,我使用的是 Rails 3.0.9。 Rails 中 Gemfile 和 Gemfile.lock 有什么区别? 最佳答案 Gemfile 是您指定要使用哪
是否存在类似 Ruby 的 Bundler的 Gemfile和 bundle install , bundle exec Haskell Cabal 的命令? 这是一个related question
我们会对此进行测试,但如果这不应该发生,我们不想冒险破坏我们的开发环境。 删除Gemfile.lock可以吗? 我们在 Rails 3.0.6 上。 最佳答案 您可能不会破坏您的开发环境。但是,您最终
为什么要创建指定 2.6.3 的 Gemfile?我如何让它创建一个指定 2.7.0 的 Gemfile ??? 谢谢 最佳答案 只需更改:ruby '2.6.3'至 ruby '2.7.0'在您的
Gemfile source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git"
我是 Rails 新手,正在尝试关注 http://railstutorial.org指导。我正在使用: gem 2.0.3 bundler 1.3.5 rails 3.2.13 ruby 2.0.0
我有一个带有 Debian Wheezy 的测试虚拟机,但没有安装 ruby。 Gitlab 6.9.2 已使用提供的安装程序安装,该安装程序带有嵌入式 ruby。现在,我想将一些旧的存储库导
我正在 Windows 机器和 Linux 机器之间开发 Ruby on Rails 应用程序。不理想,但 Windows 上的 Ruby 已经改进了很多。不管怎样,我读到你可以实现一个 IF 语句,
我的博客基于 Jekyll Bootstrap,我最近设置了一台装有 Windows 10 的新机器。 当我在本地机器上启动我的服务器进行测试时,它说我应该向我的 Gemfile 添加一些东西: $
有一个共同的模式: 有许多开发人员在一个项目上工作,并且 Gemfile(.lock) 通过 SCM 共享。但是,如果一些开发人员想要使用不同的工具进行测试和开发怎么办?怎么做? 问题是,当您将条件部
我是 Ruby 的新手。 我正在关注一篇博文,其中说为了安装所需的依赖项,我需要创建一个 Gemfile。 如何创建一个以 rspec 作为依赖项的 Gemfile? 最佳答案 bundle init
我当然不是 Ruby 开发人员,但我的服务器上有一个使用 Ruby、Gems 和 Bundler 的应用程序。我正在尝试在不同的用户帐户下但在同一 VPS 上安装另一个 Ruby。当我去运行的时候 b
我是一名优秀的程序员,十分优秀!