Tag: ruby在轨道

在Docker容器中使用capstrano部署Rails应用程序

我设法dockerize我的rails应用程序进行开发,它工作得很好。 在此之前,我使用Capistrano进行了部署设置。 现在我想尝试和部署使用相同的Capistrano,但在docker集装箱内执行。 我的问题是我可以从我的主机使用相同的SSH密钥,或者我应该在容器内生成一个新的密钥? 最后一个选项对我来说听起来不太好,因为当容器被破坏时必须重新创build。 我知道,从长远来看,我可能会更好地设置生产服务器来运行docker和通过docker机安装,但到目前为止,我只是想保持我已经在生产的设置。 任何人都试过这个?

升级到Mac OS X后,无法find随机gem高塞拉利昂(与docker)

我有一个使用在Docker容器上运行的Bundler 1.14.6的Rails 4.2.8应用程序。 我最近更新了Mac到OS X High Sierra 。 从那以后,每当我尝试运行Docker容器中的服务器或规格时,都会收到错误消息,指出在任何源中都找不到gem。 例如: Could not find unf-0.1.4 in any of the sources 所述的gem实际上是安装的,但是当我再次运行bundle install时,它被呈现为再次安装。 当我从我的依赖中删除那个gem时,同样的事情发生在另一个不同的gem上。 我怀疑这可能是docker问题,因为当我在本地运行的一切都顺利。 我试图升级到最后的可用版本( 17.10.0-ce ),但同样的事情不断发生… 请帮忙!

Devise在Docker中找不到“Warden :: Proxy”

我find了一些关于这个问题的答案。 我从Docker容器中加载Web时遇到此错误。 我试着在这里build议什么 Helper Devise:根据请求环境找不到“Warden :: Proxy”实例,但没有成功 这是我的Dockerfile FROM ruby:2.4.0 ENV PHANTOM_JS="phantomjs-2.1.1-linux-x86_64" RUN curl -sL https://deb.nodesource.com/setup_6.x | bash – && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add – && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y rake less rsync […]

主机密钥validation无法在Docker容器中获取git

我在github中有一个私人的ruby,我在另一个仓库中使用,所以当我build立docker容器,它试图执行捆绑安装我得到以下错误: 主机密钥validation失败。 致命的:无法从远程存储库读取。 我检查了我的用户有权阅读这个gem。 我正在使用的命令是这样的: docker build \ -t quay.io/org/${APP}:${VERSION} \ . 而我的Dockerfile是这个简单的文件: FROM ruby:2.4.2-onbuild ENTRYPOINT ["./entrypoint.sh"] 其中的entrypoint.sh文件只是执行此操作: bundle exec ruby runner.rb 我想,不知何故,我需要通过用户和SSH密钥到容器中,但我无法弄清楚如何。

Docker撰写,导轨和绑定的开发环境 – 有点破碎

我想使用docker-compose的绑定挂载来允许我自己对rails控制器进行修改,并让它们立即显示在我的dev服务器上,而不必重新编译映像。 如果我创build了一个没有绑定装载的API镜像,连接了dockerfile,它就能正常工作 – 没有错误,function正确,但是我没有select在运行中修改。 不幸的是,当我添加一个绑定挂载,以掩盖我的应用程序工作文件夹上的容器时,我在docker-compose输出中出现以下错误: api_1 | bundler: failed to load command: rails (/usr/local/bundle/bin/rails) api_1 | Bundler::GemNotFound: Could not find rake-12.2.1 in any of the sources api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/spec_set.rb:88:in `block in materialize' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/spec_set.rb:82:in `map!' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/spec_set.rb:82:in `materialize' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/definition.rb:170:in `specs' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/definition.rb:237:in `specs_for' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/definition.rb:226:in `requested_specs' api_1 | /usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/lib/bundler/runtime.rb:108:in […]

Watir Chrome无头docker

我试图通过在Docker上运行我的testing套件来简化我的Seleniumtesting。 我正在运行一个Debian Jessie的图像,安装了从PPA和chromedriver 2.33安装的google-chrome-stable。 我还附加了/ dev / shm来最大化我的内存容器。 我已经validation了chromedriver在容器内运行良好。 但是,当我运行一个简单的testing时,我得到一个超时: browser = Watir::Browser.new :chrome, headless: true browser.goto 'google.com' browser.text_field(title: 'Search').set 'Hello World!' browser.button(type: 'submit').click puts browser.title browser.quit /usr/local/lib/ruby/2.4.0/net/protocol.rb:176:in `rbuf_fill': Net::ReadTimeout (Net::ReadTimeout) from /usr/local/lib/ruby/2.4.0/net/protocol.rb:154:in `readuntil' from /usr/local/lib/ruby/2.4.0/net/protocol.rb:164:in `readline' from /usr/local/lib/ruby/2.4.0/net/http/response.rb:40:in …… 有一点要提到的是,chromedriver安装在/ chromedriver / chromedriver,然后添加到$ PATH。 Watir / Selenium是否需要知道镀铬汽油的完整path? 是否需要在后台运行chromedriver或铬?

Docker与Rails应用程序工人不运行

所以我有一个Rails应用程序,有多种types的工人。 我决定尝试使用Docker运行rails应用程序,并为每种types的worker(Resque,DelayedJob,一个调度程序,不同的configuration)提供一个单独的映像。 问题是队列(DelayedJob + Resque)的工作人员没有select工作(同时使用排除系统本身)。 我可以看到那些排队的工作,他们在那里,但是工人从来不排队。 如果我从控制台上运行一个工作,它工作得很好。 这些图像基于Cedarish- https://github.com/progrium/cedarish 坐在NGINX后面的networking工作者似乎做得很好,虽然我注意到他们有些问题有时在一段时间后变得没有反应,但不知道是否与之相关。 任何想法可能会导致一个工人,在Docker下运行,并成功连接到Redis + MySQL,只是忽略了作业队列,并没有select什么? 猜测这与我的Dockerconfiguration有关…

如何给Docker镜像Dockerfile中的一些参数?

有没有像这样的东西: FROM ruby RUBY_MAJOR=2.1 RUBY_VERSION=2.1.5 我知道我可以写ruby:2.1.5,但这只是我的问题的一个例子。

在docker运行期间的多个命令

我是新来的docker,我创build了一个运行轨应用程序的docker图像。 现在我想在后台运行该应用程序作为一个deamon,但它一直在救助我: docker run -d -p 2000:2000 image_name "source ~/.bash_profile; cd src; rails s" 如您所见,我的rails应用程序位于src目录中。 我也尝试在docker镜像的bashrc中添加railspath,但仍然出错,如下所示: 请有人纠正我。

docker与工头

无论如何阻止我的容器退出与领class运行我的Rails服务器。 当工头做它的事情,并启动我的轨服务器和sidekiq它立即退出与退出代码0预期。 有什么办法来防止这种行为,并保持容器运行?