Fixes #1843, #1936 - chown files back to host user in django example.

Also add a missing 'touch Gemfile.lock' to fix the rails tutorial.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2015-10-27 15:04:35 -04:00
parent c439e056a0
commit c7d164d01c
2 changed files with 26 additions and 4 deletions

View File

@ -110,8 +110,20 @@ In this step, you create a Django started project by building the image from the
3. After the `docker-compose` command completes, list the contents of your project. 3. After the `docker-compose` command completes, list the contents of your project.
$ ls $ ls -l
Dockerfile docker-compose.yml composeexample manage.py requirements.txt drwxr-xr-x 2 root root composeexample
-rw-rw-r-- 1 user user docker-compose.yml
-rw-rw-r-- 1 user user Dockerfile
-rwxr-xr-x 1 root root manage.py
-rw-rw-r-- 1 user user requirements.txt
The files `django-admin` created are owned by root. This happens because
the container runs as the `root` user.
4. Change the ownership of the new files.
sudo chown -R $USER:$USER .
## Connect the database ## Connect the database

View File

@ -37,6 +37,10 @@ Next, create a bootstrap `Gemfile` which just loads Rails. It'll be overwritten
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'rails', '4.2.0' gem 'rails', '4.2.0'
You'll need an empty `Gemfile.lock` in order to build our `Dockerfile`.
$ touch Gemfile.lock
Finally, `docker-compose.yml` is where the magic happens. This file describes the services that comprise your app (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 needed to link them together and expose the web app's port. Finally, `docker-compose.yml` is where the magic happens. This file describes the services that comprise your app (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 needed to link them together and expose the web app's port.
db: db:
@ -69,6 +73,12 @@ image. Once it's done, you should have generated a fresh app:
README.rdoc config.ru public README.rdoc config.ru public
Rakefile db test Rakefile db test
The files `rails new` created are owned by root. This happens because the
container runs as the `root` user. Change the ownership of the new files.
sudo chown -R $USER:$USER .
Uncomment the line in your new `Gemfile` which loads `therubyracer`, so you've Uncomment the line in your new `Gemfile` which loads `therubyracer`, so you've
got a Javascript runtime: got a Javascript runtime:
@ -80,6 +90,7 @@ rebuild.)
$ docker-compose build $ docker-compose build
### Connect the database ### Connect the database
The app is now bootable, but you're not quite there yet. By default, Rails The app is now bootable, but you're not quite there yet. By default, Rails
@ -87,8 +98,7 @@ expects a database to be running on `localhost` - so you need to point it at the
`db` container instead. You also need to change the database and username to `db` container instead. You also need to change the database and username to
align with the defaults set by the `postgres` image. align with the defaults set by the `postgres` image.
Open up your newly-generated `database.yml` file. Replace its contents with the Replace the contents of `config/database.yml` with the following:
following:
development: &default development: &default
adapter: postgresql adapter: postgresql