Commit f90e6b07 authored by Adrian Perez's avatar Adrian Perez

feat(docker): improve docker support

This improves Docker support in the following ways:

* Base image off `ruby:onbuild` to avoid unnecessary custom steps and ease
derived images.
* Adds `.dockerignore` to avoid sending large files to build.
* Adds a `docker-compose.yml` so users can simply type `docker-compose up`
to get it running.
* Explicity sets the volume definition in the `Dockerfile`.
* Volume is automatically mount by `docker-compose` (the `source` directory
relative to the project's dir).
* Workaround watcher failing to pick directory changes probably because of
vboxsf and the `listen` gem failing to register filesystem changes.
* Updates documentation.
parent b871b44b
.git
source
FROM ruby:2.2.3-onbuild FROM ruby:onbuild
MAINTAINER Adrian Perez <adrian@adrianperez.org>
RUN ln -s /usr/src/app /app # Deprecated VOLUME /usr/src/app/source
EXPOSE 4567 EXPOSE 4567
CMD ["bundle", "exec", "middleman", "server", "--force-polling"] CMD ["bundle", "exec", "middleman", "server", "--force-polling"]
...@@ -47,23 +47,28 @@ You're going to need: ...@@ -47,23 +47,28 @@ You're going to need:
2. Clone *your forked repository* (not our original one) to your hard drive with `git clone https://github.com/YOURUSERNAME/slate.git` 2. Clone *your forked repository* (not our original one) to your hard drive with `git clone https://github.com/YOURUSERNAME/slate.git`
3. `cd slate` 3. `cd slate`
4. Initialize and start (there are a few options for this): 4. Initialize and start (there are a few options for this):
#### Manual/local #### Manual/local
```shell ```shell
bundle install bundle install
bundle exec middleman server bundle exec middleman server
``` ```
#### Via Docker (must install Docker first)
#### Via Docker (must install it first)
```shell ```shell
docker build -t slate . docker-compose up
docker run -d -p 4567:4567 --name slate -v $(pwd)/source:/app/source slate ```
```
will spin an environment for you, with the `source` directory mapped to the
container, so you can see your edits instantly after refreshing your browser.
You can now see the docs at http://localhost:4567. Whoa! That was fast! You can now see the docs at http://localhost:4567. Whoa! That was fast!
*Note: if you're using the Docker setup on OSX, the docs will be availalable at the output of `boot2docker ip` instead of `localhost:4567`.* +*Note: if you're not using Docker natively (i.e. on Linux), the docs will be
+available at the IP of your docker host. If you're using docker-machine you can
+retrieve it with `docker-machine ip <your_machine_name>`*
#### Via Vagrant #### Via Vagrant
```shell ```shell
......
app:
build: .
ports:
- 4567:4567
volumes:
- ./source:/usr/src/app/source
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment