/rails-meets-docker

Files for the "Rails Meets Docker" blog post from blog.gemnasium.com

Primary LanguageShellMIT LicenseMIT

Rails meets Docker

Here is everything you need to build the Docker image from the Rails meets Docker blog post.

This repository contains:

  • a Dockerfile and some files needed for the build
  • some scripts to build, run and publish your "rails-getting-started" Docker image

Here are the files referenced by the Dockerfile:

  • scripts/start
  • scripts/setup

These scripts are for the image you build using Docker. The others are for you!

Prerequisite

Get and install Docker!

You also need a profile on the Docker Index in order to push your images.

You should be able to run the docker command line without sudo. Otherwise you will have to make some adjustments.

Usage

Clone this repository, enter the directory, and "prepare":

$ git clone https://github.com/gemnasium/rails-meets-docker.git
$ cd rails-meets-docker
$ ./prepare

It will clone the Getting Started Rails application locally.

Now, export you Docker login or use a fake one:

$ export DOCKER_LOGIN=fcat

You should then be able to build the "rails-getting-started-image":

$ ./build
...
19b49aad2eff

Here is the new image:

$ docker images | grep getting-started
fcat/rails-getting-started   latest   19b49aad2eff ...

We can now fire a new container based on this image:

$ ./run
c035bf447200

The container runs in the background.

Visit http://localhost:5000/ with your web browser. You should be able to connect to the Rails application.

Your "rails-getting-stared" image can be pushed to the Docker Index:

$ ./push

There's also a script to start the container in console mode. Then you can make some changes to the Rails application. Let's say you are turning pirate, like in the blog post:

$ ./console
rails@c4ee37242238:/$ vim /rails/app/views/welcome/index.html.erb
rails@c4ee37242238:/$ exit

When this is done, you can commit your changes as a new image:

$ ./commit c4ee37242238
5502dd9b6a8d

The new image should be there:

$ docker images | grep pirate
fcat/rails-getting-started-pirate   latest  5502dd9b6a8d ...

And now, you can be a pirate everyday:

$ ./run-pirate