Tag: ruby on rails

如何debugging在docker容器内运行的rails应用程序

我正试图在使用docker的rails应用程序中执行debugging器。我们的应用程序服务器在Ubuntuterminal中执行:docker -compose up 。 我没有find运行debugging器的方法。 我们不能使用rails s –debugger。 有什么方法来debugging我们与docker集成的rails应用程序。 当我将debugging器保存在应用程序文件中时,我们在控制台中得到输出:{*****debugging器请求,但不可用(确保ruby-debug在Gemfile中列出/安装为gem):使用–debugger启动服务器以启用* ****}

Rake无法在Docker / Rails / Postgres设置中运行Rspec规范(但是web应用程序工作正常)

在使用Heroku-docker解决scheme时,是否需要特殊的步骤或configuration来获取Rails(3.2.21)testing数据库(例如Rspec规格)在Docker下工作? 我正在使用Docker Toolkit(Docker快速入门terminal)在本地运行我的Heroku应用程序, 除了运行规范以外的所有内容都正常工作。 这工作: docker-compose run web rake db:reset 而Web应用程序工作,阅读和写入所有种子值加载数据库。 但是,任何创build或使用testing数据库的命令都会失败: docker-compose run web rake db:test:prepare docker-compose run web rake db:test:load docker-compose run web rake spec docker-compose run web bundle exec rake spec 所有抛出的错误: PG::ConnectionBad: FATAL: role "root" does not exist 我正在使用Heroku的postgres图像,看起来像一个app.json: { "name": "My App", "description": "Localized Docker Setup", "image": "hrails200", "addons": [ […]

docker+铁轨+ redis – 救援人员没有运行

我创build了一个docker环境,创build3个图像:rails,postgresql和redis。 它一直工作得很好,但我发现我的redis映像似乎没有任何工作者在运行。 Docker信息 我的docker-compose.yml如下 web: build: . command: bundle exec unicorn -p 3000 -c config/unicorn.rb volumes: – .:/fitmo – ../fitmo-core:/fitmo-core ports: – "3000:3000" links: – db – redis environment: – REDIS_URL=redis://redis:6379 db: build: ./db/docker-files ports: – "5432" redis: image: redis:2.8 ports: – "6379" Resque Config require 'resque' require 'resque-scheduler' require 'resque_scheduler/server' require 'appsignal/integrations/resque' require 'yaml' […]

在Docker-compose上的127.0.0.1:6379(Errno :: ECONNREFUSED)连接到Redis的Sidekiq错误

我正在尝试使用Rails运行sidekiq worker。 当我尝试docker-compose up worker ,出现以下错误: worker_1 | Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:332:in `rescue in establish_connection' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:318:in `establish_connection' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:94:in `block in connect' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:280:in `with_reconnect' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:93:in `connect' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:351:in `ensure_connected' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:208:in `block in process' worker_1 | /home/app/Nyvur/vendor/bundle/ruby/2.2.0/gems/redis-3.2.2/lib/redis/client.rb:293:in `logging' worker_1 | […]

Dockerizedselenium浏览器不能访问Capybaratestingurl

我正在尝试在dockerized selenium独立的firefox浏览器上运行Ruby on Railsfunctiontesting。 这似乎是我有networking问题,因为selenium实例无法连接到由水豚开始的url。 这里是我的示例docker-compose.yml文件: ff: image: selenium/standalone-firefox:2.48.2 container_name: firefox-browser web: build: . container_name: my-app volumes: – ".:/home/ubuntu/my-app" command: /bin/bash -l scripts/docker-start-tests.sh ports: – "3000:3000" 我开始docker-compose与networking启用: docker-compose –x-networking up testing脚本像这样运行一个rspec命令 rspec ./spec/features/login_spec.rb:43 dockertesting我启用了远程驱动程序水豚: Capybara.register_driver :docker_firefox do |app| Capybara::Selenium::Driver.new(app, { browser: :remote, url: "#{ENV['FF_URL']}/wd/hub", desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox }) end 最后,我打电话给这样的testing: unless ENV['FF_URL'].nil? Capybara.current_driver = :docker_firefox Capybara.javascript_driver […]

从Dockerlogin

我有一个rails应用程序通过docker运行。 我用docker-compose(config下面)调出应用程序。 整个应用程序涵盖了一个MySQL,Redis的,铁轨(包括sidekiq工人),nginx(与反应前端)和一个rsyslog服务器,转发所有日志Loggly 我的问题是相关的日志logging部分。 从所有服务的日志基本上得到转发,除了从我的日志从sidekiq。 当我用bundler exec sidekiq启动sidekiq时,日志输出到控制台(stdout),但是当我在rsyslog服务器上添加/ var / log / messages时,我没有看到它们。 在设置docker上的日志logging时,我遵循本教程: https://medium.com/@yoanis_gil/logging-with-docker-part-1-b23ef1443aac 我的想法是,在docker容器中标准输出的所有内容都应该logging到docker日志机制中 – 并且使用我的设置,这意味着它应该进入syslog服务器。 docker构成文件: version: '3' services: nginx: image: nginx depends_on: – api – syslog ports: – "80:8080" logging: driver: syslog options: syslog-facility: "daemon" tag: "nginx" syslog-address: "tcp://localhost:5514" networks: – phototankswarm env_file: .env.dev volumes: – ./frontend/nginx/conf.d:/etc/nginx/conf.d – ./frontend/public:/www db: image: […]

Docker作为有效的Rails开发环境

[ 更新 ] 不幸的是,亲爱的同事,我现在放弃了docker工人。 主要因素: 共享音量性能差(有一些解决方法使用额外的工具,但似乎更多的是黑客)。 不过对于那些使用Linux的好人来说这不是问题! 我低估了一些前期工作,这是使远程运行时与编辑器/ IDE很好地配合所必需的。 像linting这样的东西假定一个本地的运行时框,似乎最广泛的解决scheme是无数的bash包装脚本委托执行到docker集装箱。 另外,我们聘请了两位DevOps开发人员,他们有相当多的Docker经验,如果他们能够提出,如何(无痛地)在我们公司中引入Docker来进行托pipe和开发,我很乐意修改这个主题。 [ 旧post ] 作为使用本机OSXpipe理程序的新版本,现在已经可以使用了,我决定尝试将所有的Ruby / Rails / JS开发推向Docker容器。 我在一个新鲜的El Capitan安装上玩了很多,试图将我们拥有的一些私有gem和我们的monolith Rails应用程序停泊在一起。 有几个问题,我希望我们的社区可以帮助解决。 目标 – 一切正常 ,主机只安装了iTerm,git,Sublime,SourceTree和Docker(没有任何东西是刻着石头的,如果一些额外的依赖(-ies)可以改善/使工作stream程更容易,我将很乐意审查选项) 要求 有相当多的服务(EngineYard,ElastiBeanstalk,Github等),需要我的密钥才能正常工作,我应该能够重用我的主机上的那些。 在所有Ruby应用程序容器中重用已安装的RubyGems将会很不错。 基本上,docker container / docker-compose文件的安装方式与安装GEM_PATH的相同目录相同,每个容器中的bundler在其中安装gem。 应用程序bundler应该负责加载正确的版本。 我应该能够轻松地debugging代码 – 将断点与debugging器交互,因为它将在本地运行 它应该支持TDD循环 – 我改变文件,它被容器中的guard进程所捕获,并执行相关的testing 当执行Cucumber / Seleniumtesting时,我应该能够看到浏览器中发生了什么。 (据我所知,选项是 – 通过VNC连接到虚拟帧缓冲区或本地运行X服务器,我更喜欢在主机端依赖较less的选项)。 问题 Docker化现有的应用程序是相对容易的,你怎么样,好人,处理创build/引导新项目? 常见的依赖关系的开发容器? 是否可以像容器一样设置容器“保持运行”的方式呢? (这可能会解决我的许多需求 – 跑步guard ,更容易debugging,在同一运行中启动任意进程) […]

/home/web/.gem/ruby/2.2.0/gems/redis-3.2.1/lib/redis/connection/ruby.rb:152:in`getaddrinfo':getaddrinfo:名称或服务未知(SocketError)

我正在使用docker-compose为开发人员提供ROR,postgres,redis,mongo等开发环境。 docker-compose build运行成功,但是当我运行docker-compose up遇到以下错误。 web_1 | => Booting Thin web_1 | => Rails 4.2.3 application starting in development on http://0.0.0.0:3000 web_1 | => Run `rails server -h` for more startup options web_1 | => Ctrl-C to shutdown server web_1 | Exiting web_1 | /home/web/.gem/ruby/2.2.0/gems/redis-3.2.1/lib/redis/connection/ruby.rb:152:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError) web_1 | from […]

Docker – PG :: ConnectionBad

用Phusion Passenger运行Rails,目前遇到postgres问题,每当我运行构build命令时,我得到这个错误: PG::ConnectionBad (could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? ): 我的Dockerfile FROM phusion/passenger-customizable MAINTAINER VodkaMD <support@nyvur.com> ENV RACK_ENV="production" RAILS_ENV="production" SECRET_KEY_BASE="e09afa8b753cb175bcef7eb5f737accd02a4c16d9b6e5d475943605abd4277cdf47c488812d21d9c7117efd489d876f34be52f7ef7e88b21759a079339b198ce" ENV HOME /root CMD ["/sbin/my_init"] RUN /pd_build/utilities.sh RUN /pd_build/ruby2.2.sh RUN /pd_build/python.sh RUN /pd_build/nodejs.sh # Custom instructions RUN apt-get […]