- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在运行两个 docker 容器。一个带有rails,一个带有Postgres db。这是我的 docker-compose 文件:
# Docs: https://docs.docker.com/compose/compose-file/
version: '2'
services:
db:
image: postgres
environment:
- POSTGRES_PASSWORD=xxx
rails:
build: .
command: rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/app
ports:
- "3000:3000"
links:
- db
depends_on:
- db
这里是 rails 应用程序的 Dockerfile:
FROM ruby:2.3
RUN apt-get update
RUN apt-get install -y build-essential nodejs
RUN mkdir -p /app
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN gem install bundler && bundle install --jobs 20 --retry 5
COPY . ./
EXPOSE 3000
ENTRYPOINT ["bundle", "exec"]
CMD ["rails", "server", "-b", "0.0.0.0"]
当我运行 docker-compose up
时,一切正常,我可以通过 docker-machine 的 IP 地址连接到服务器。
当我尝试使用以下命令连接到容器时:
docker-compose run rails console
我收到此错误:
Could not find rake-11.1.2 in any of the sources
Run `bundle install` to install missing gems.
容器内的bundle install 没有任何效果,上面提到的gem肯定已经安装了。在其他堆栈溢出问题中提到我应该运行 bin/spring stop
。于是我跑了:
docker-compose run bin/spring stop
然后它返回:
Spring is not running
我对 ruby/rails 和 docker 还是比较陌生。我希望有人可以在这里帮助我!提前致谢
PS:感谢对 Dockerfiles 的评论!
最佳答案
似乎是一个迟到的回应,但无论如何我都会回答。我有根据的猜测是您的 Gemfile.lock
正在固定您的rake
版本,这就是它提示的原因。如果您运行 docker build
没有像您的 docker-compose.yml
中定义的音量你可以很容易地像这样结束。那就试试吧。
关于您的Dockerfile
:如果您仅将其用于开发目的,那么这可能没问题。否则,您应该考虑使用不同的用户来运行它(使用 useradd
创建用户并相应地运行 RUN
任务等等)。您可能还想使用一些 bundler 功能,例如 --path=<path>
选项。
关于ruby-on-rails - 在 rails docker 容器中找不到 rake-11.1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237943/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!