Merge pull request #392 from bfirsh/more-official-images

More official images
This commit is contained in:
Aanand Prasad 2014-08-07 16:42:36 -07:00
commit a39460d7b2
3 changed files with 12 additions and 13 deletions

View File

@ -8,7 +8,7 @@ Fast, isolated development environments using Docker.
Define your app's environment with Docker so it can be reproduced anywhere: Define your app's environment with Docker so it can be reproduced anywhere:
FROM orchardup/python:2.7 FROM python:2.7
ADD . /code ADD . /code
WORKDIR /code WORKDIR /code
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
@ -25,7 +25,7 @@ web:
- "8000:8000" - "8000:8000"
- "49100:22" - "49100:22"
db: db:
image: orchardup/postgresql image: postgres
``` ```
(No more installing Postgres on your laptop!) (No more installing Postgres on your laptop!)

View File

@ -77,7 +77,7 @@ We define our Python dependencies in a file called `requirements.txt`:
Next, we want to create a Docker image containing all of our app's dependencies. We specify how to build one using a file called `Dockerfile`: Next, we want to create a Docker image containing all of our app's dependencies. We specify how to build one using a file called `Dockerfile`:
FROM orchardup/python:2.7 FROM python:2.7
ADD . /code ADD . /code
WORKDIR /code WORKDIR /code
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
@ -96,17 +96,17 @@ We then define a set of services using `fig.yml`:
links: links:
- redis - redis
redis: redis:
image: orchardup/redis image: redis
This defines two services: This defines two services:
- `web`, which is built from `Dockerfile` in the current directory. It also says to run the command `python app.py` inside the image, forward the exposed port 5000 on the container to port 5000 on the host machine, connect up the Redis service, and mount the current directory inside the container so we can work on code without having to rebuild the image. - `web`, which is built from `Dockerfile` in the current directory. It also says to run the command `python app.py` inside the image, forward the exposed port 5000 on the container to port 5000 on the host machine, connect up the Redis service, and mount the current directory inside the container so we can work on code without having to rebuild the image.
- `redis`, which uses the public image [orchardup/redis](https://index.docker.io/u/orchardup/redis/). - `redis`, which uses the public image [redis](https://registry.hub.docker.com/_/redis/).
Now if we run `fig up`, it'll pull a Redis image, build an image for our own code, and start everything up: Now if we run `fig up`, it'll pull a Redis image, build an image for our own code, and start everything up:
$ fig up $ fig up
Pulling image orchardup/redis... Pulling image redis...
Building web... Building web...
Starting figtest_redis_1... Starting figtest_redis_1...
Starting figtest_web_1... Starting figtest_web_1...

View File

@ -28,7 +28,7 @@ Next, we have a bootstrap `Gemfile` which just loads Rails. It'll be overwritten
Finally, `fig.yml` is where the magic happens. It describes what services our app comprises (a database and a web app), how to get each one's Docker image (the database just runs on a pre-made PostgreSQL image, and the web app is built from the current directory), and the configuration we need to link them together and expose the web app's port. Finally, `fig.yml` is where the magic happens. It describes what services our app comprises (a database and a web app), how to get each one's Docker image (the database just runs on a pre-made PostgreSQL image, and the web app is built from the current directory), and the configuration we need to link them together and expose the web app's port.
db: db:
image: orchardup/postgresql image: postgres
ports: ports:
- "5432" - "5432"
web: web:
@ -62,19 +62,18 @@ Now that we've got a new `Gemfile`, we need to build the image again. (This, and
$ fig build $ fig build
The app is now bootable, but we're not quite there yet. By default, Rails expects a database to be running on `localhost` - we need to point it at the `db` container instead. We also need to change the username and password to align with the defaults set by `orchardup/postgresql`. The app is now bootable, but we're not quite there yet. By default, Rails expects a database to be running on `localhost` - we need to point it at the `db` container instead. We also need to change the database and username to align with the defaults set by the `postgres` image.
Open up your newly-generated `database.yml`. Replace its contents with the following: Open up your newly-generated `database.yml`. Replace its contents with the following:
development: &default development: &default
adapter: postgresql adapter: postgresql
encoding: unicode encoding: unicode
database: myapp_development database: postgres
pool: 5 pool: 5
username: docker username: postgres
password: docker password:
host: <%= ENV.fetch('DB_1_PORT_5432_TCP_ADDR', 'localhost') %> host: db_1
port: <%= ENV.fetch('DB_1_PORT_5432_TCP_PORT', '5432') %>
test: test:
<<: *default <<: *default