|
|
@@ -11,15 +11,23 @@ Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source pro
|
|
|
## Create a `Dockerfile` in your Ruby app project
|
|
|
|
|
|
```dockerfile
|
|
|
-FROM %%IMAGE%%:2.1-onbuild
|
|
|
+FROM %%IMAGE%%:2.5
|
|
|
+
|
|
|
+# throw errors if Gemfile has been modified since Gemfile.lock
|
|
|
+RUN bundle config --global frozen 1
|
|
|
+
|
|
|
+WORKDIR /usr/src/app
|
|
|
+
|
|
|
+COPY Gemfile Gemfile.lock ./
|
|
|
+RUN bundle install
|
|
|
+
|
|
|
+COPY . .
|
|
|
+
|
|
|
CMD ["./your-daemon-or-script.rb"]
|
|
|
```
|
|
|
|
|
|
Put this file in the root of your app, next to the `Gemfile`.
|
|
|
|
|
|
-This image includes multiple `ONBUILD` triggers which should be all you need to bootstrap most applications. The build will `COPY . /usr/src/app` and `RUN
|
|
|
-bundle install`.
|
|
|
-
|
|
|
You can then build and run the Ruby image:
|
|
|
|
|
|
```console
|
|
|
@@ -29,10 +37,10 @@ $ docker run -it --name my-running-script my-ruby-app
|
|
|
|
|
|
### Generate a `Gemfile.lock`
|
|
|
|
|
|
-The `onbuild` tag expects a `Gemfile.lock` in your app directory. This `docker run` will help you generate one. Run it in the root of your app, next to the `Gemfile`:
|
|
|
+The above example `Dockerfile` expects a `Gemfile.lock` in your app directory. This `docker run` will help you generate one. Run it in the root of your app, next to the `Gemfile`:
|
|
|
|
|
|
```console
|
|
|
-$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:2.1 bundle install
|
|
|
+$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:2.5 bundle install
|
|
|
```
|
|
|
|
|
|
## Run a single Ruby script
|
|
|
@@ -40,7 +48,7 @@ $ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app %%IMAGE%%:2.1 bundle in
|
|
|
For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Ruby script by using the Ruby Docker image directly:
|
|
|
|
|
|
```console
|
|
|
-$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:2.1 ruby your-daemon-or-script.rb
|
|
|
+$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp %%IMAGE%%:2.5 ruby your-daemon-or-script.rb
|
|
|
```
|
|
|
|
|
|
## Encoding
|