Tag: ruby在轨道

我如何使用公共的大摇大摆的docker图像来生成客户端?

我们有一个完全dockerized的Web应用程序,其API有效的Swagger定义。 API运行在它自己的docker容器中,我们使用docker-compose编排一切。 我想生成一个基于位于http://api:8443/apidocs.json的Swagger定义的Ruby客户端。 我已经通过这里的文档,这导致我Swagger的公共docker图像生成客户端和服务器代码。 遗憾的是文档是缺乏的,并没有提供实际生成一个客户端与docker图像的例子。 Dockerfile指示它的容器运行一个Web服务,我只能假定是http://generator.swagger.io的dockerized版本。 因此,我希望能够使用以下命令生成客户端: curl -X POST -H "content-type:application/json" -d \ '{"swaggerUrl":"http://api:8443/apidocs"}' \ http://swagger-generator:8080/api/gen/clients/ruby 这里没有运气。 即使我已经确认swagger的定义是有效的(npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs 。 有任何想法吗?

添加除Dockerfile之外的项目文件夹

我正在尝试在Docker容器中运行一个小的Rails应用程序。 我越来越接近,但我正在努力与我的Dockerfile。 我已经添加了以下命令到我的Dockerfilerecursion添加我的项目文件夹中的所有文件。 ADD . 之后,我跑了 RUN bundle install –deployment 但是,因为我的ADD命令还添加了Dockerfile,这意味着我的图像caching每次编辑Dockerfile时都会中断,迫使我重新绑定。 根据https://docs.docker.com/reference/builder/#the-dockerignore-file ,我可以使用.dockerignore文件来忽略Dockerfile,但是这会导致docker docker build命令失败 2014/09/17 22:12:46 Dockerfile was excluded by .dockerignore pattern 'Dockerfile' 我如何轻松地将我的项目添加到我的图像,但排除Dockerfile,所以我不打破docker图像caching?

onbuild目录是如何工作的官方的Rails泊坞窗图像?

我一直在为我们的团队构build一个Docker镜像 ,该镜像使用的Ruby on Rails版本太旧,以至于官方Docker镜像不支持。 在反向移植官方Rails镜像的过程中,我正在查看用于构build正式映像的存储库中的Dockerfile ,我不明白它们是如何组合在一起的。 具体来说,如何调用onbuild目录中的Dockerfile? 在根目录的Dockerfile中没有明确的调用。 我已经阅读了ONBUILD的文档,找不到答案。

Docker-compose服务以–service-ports标志为默认值

tl; dr:有没有办法在编写文件中指定–service-ports标志作为默认值? 通过我的rails应用程序,我通常有一个这样的command:在我的web服务中: command: bash -c "rake db:create && rake db:migrate && rake db:seed && RAILS_ENV=development puma" 所以,用docker-compose起来,我都设置好了,但是如果我想用docker-compose run –service-ports web puma进行debugging,我必须停止我的web服务并docker-compose run –service-ports web puma 对于我的开发组合文件,我希望Web服务可以使用–service-ports标志作为默认运行。 无论如何要在撰写文件中指定这个,这样我就可以在一个命令中准备好一切了吗? (docker – 组成)

docker-compose rails with mysql

你好,我有很大的问题。 我试图在单独的docker集装箱上运行rails和mysql。 在docker-compose.yml中我有: version: '2' services: db: image: mysql ports: – "3307:3306" environment: MYSQL_ROOT_PASSWORD: zzz MYSQL_USER: root MYSQL_PASSWORD: zzz MYSQL_DATABASE: zzz web: build: . command: bundle exec rails s -p 3000 volumes: – .:/app ports: – "3000:3000" depends_on: – db 并在我的轨道database.yml development: adapter: mysql2 encoding: utf8 database: zzz pool: 5 username: root password: zzz host: […]

在Docker中使用nginx服务Rails的预编译资产

目前我正在使用docker设置我的应用程序。 我有一个最小的应用程序,1个控制器。 你可以通过运行这些来获得我的设置: rails new app –database=sqlite –skip-bundle cd app rails generate controller –skip-routes Home index echo "Rails.application.routes.draw { root 'home#index' }" > config/routes.rb echo "gem 'foreman'" >> Gemfile echo "web: rails server -b 0.0.0.0" > Procfile echo "port: 3000" > .foreman 我有以下设置: Dockerfile : FROM ruby:2.3 # Install dependencies RUN apt-get update && apt-get […]

Dockerized Rails 5 RC1应用程序不能获取正在开发的控制器和模型的更新

我在Mac OS X + Docker Machine + Docker Compose上开发Rails 4应用程序的经验相当丰富,但Rails 5在开发环境(目前正在用RC1testing)中caching文件的方式发生了一些变化。 在用docker-compose up启动应用程序docker-compose up ,应用程序以开发模式正常运行。 但是,如果我对控制器或模型进行更改,那么我可以在应用程序中反映的唯一方法是停止服务器并将其启动。 所以现在当我需要对控制器或模型进行更改时,我的工作stream看起来像这样: 改变控制器/模型类。 用Ctrl + C停止服务器。 用docker-compose up启动服务器备份docker-compose up 。 等待服务器启动。 运行我在浏览器中运行的任何东西。 至less可以说,需要做2-4步是烦人的,而不是我习惯于Rails 4的。 我更进一步,并使用删除说明卸载Spring,但我仍然得到相同的行为。 我还search了在config/environments/development.rb可以find的有关Rails运行时对模型和控制器类的控制权的设置,但是我找不到任何东西。 (我假设它真的想要依靠观看文件系统来select性地加载更改,而不是从Mac到VirtualBox的更改中拾取某些东西。) 任何其他的想法,我可以尝试吗? 还是有什么新的设置有关如何更积极的caching工作?

在Docker中使用水豚和无头selenium浏览器的Rails系统testing

TL; DR:有关如何正确configuration水豚能够使用默认的Rails minitest系统testing来驱动docker容器中的远程selenium浏览器的任何想法? 我正在dockerized环境中运行Rails ..现在我想开始一些“系统testing”,但是因为我在Docker中运行,所以我想出了一些问题。 我正在使用默认testing套件(minitest?)与capybara和selenium-webdrivergem。 我已经使用以下方法在容器中安装了chromedriver数据包: RUN apt-get install -y chromedriver \ && ln -s /usr/lib/chromium-browser/chromedriver /usr/local/bin 但运行rails test:system输出以下错误Selenium::WebDriver::Error::WebDriverError: Unable to find chromedriver. 事实上,我不知道铬本身是否安装? which chrome输出什么。 which chromium输出/usr/bin/chromium 。 我也试过用xvfb没有成功。 所以(因为我没有任何线索),我试图进一步去实际去dockerized系统testing环境。 我从selenium中发现了一些Docker镜像。 所以我在我的rails和数据库容器中运行了一个selenium-standalone-chrome容器( 我使用的是实际的docker-compose.yml ) 然后,我发现一些有用的信息,关于configuration要让水豚驱动程序的远程selenium浏览器。 我在互联网上find的所有例子都使用rspec,但是因为我使用了默认的minispec,所以我尝试将capybara驱动程序改为minispec,但我对如何执行configuration以及在何处放置configuration有疑问。 对于系统testing,我猜想最好的位置是文件application_system_test_case.rb 。 此外,我发现,我尝试了许多不同的水豚configuration,我结束了以下似乎是最完整的(在这里可用) 在那个时候,testing似乎performance良好,因为我没有错误,但总是失败。 无论在setup_remote调用驱动程序configuration( setup_remote方法,我在其中定义了服务器主机和端口),它都会失败。 有或没有电话我得到了“网站无法到达”的错误( 这里是截图 ) 这是我使用的testing文件 。 (testing一些反应dynamic显示) 不过,我可以从我的主机访问来自浏览器的给定URL的selenium容器。 两个容器都可以看到对方。 我在容器shell里做了一些ping。 下面这些有帮助的问题不适合我: Dockerizedselenium浏览器不能访问Capybaratestingurl […]

在docker容器中运行rails迁移有时会导致ActiveRecord :: DuplicateMigrationNameError

我有一个泊坞窗容器,是为我的应用程序创build的,在我的应用程序目录上有一个安装的卷,有时当我运行我的db:setup命令时,我得到一个ActiveRecord :: DuplicateMigrationNameError。 我不完全确定为什么这可能会发生,因为应用程序在其他环境中正常运行。 看起来像docker是要么我的文件系统两次或其他奇怪的事情。 有没有人听说重复的迁移之前被拉入docker集装箱? 或者有什么方法可以debugging为什么这是发生在我的容器?

如何testing和部署Docker生产映像?

我正在开发Ruby on Rails,并开始使用Docker进行一个月的部署。 以下是我正在处理的步骤。 开发我的笔记本电脑 推到gitlab build立一个包括testing和生产gem的图像 对此图像运行rspec (通)推送到registry,(失败)丢弃图像 有了这个工作stream程,我将拥有一个拥有所有testing,开发和生产gem的图像。 我从与许多人交谈中find的工作stream程 在我的膝盖上开发 推到gitlab build立testing图像(testing所需的所有gem) 对testing图像运行rspec (通过)构build另一个图像部署没有testinggem,推到dockerregistry,(失败)丢弃图像 用这种方法,我认为这是违反了Docker的目的(被testing的图像应该与将被部署的图像无关)。 如何指定和实施testing和推送生产映像的方法?