Merge pull request #99 from alexanderbeletsky/environment

issue #92: inserting environment file to docker instance
This commit is contained in:
Jeff Lindsay
2013-07-20 08:57:11 -07:00
3 changed files with 27 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
# This file lists all individuals having contributed content to the repository.
#
Alexander <iam.asm89@gmail.com>
Alexander Beletsky <alexander.beletsky@gmail.com>
Felipe Coury <felipe.coury@gmail.com>
Jeff Lindsay <progrium@gmail.com>
Leo Unbekandt <leo@unbekandt.eu>

View File

@@ -17,7 +17,7 @@ This may take around 5 minutes. Certainly better than the several hours it takes
## Configuring
Set up a domain and a wildcard domain pointing to that host. Make sure `/home/git/VHOST` is set to this domain.
Set up a domain and a wildcard domain pointing to that host. Make sure `/home/git/VHOST` is set to this domain.
By default it's set to whatever the hostname the host has.
You'll have to add a public key associated with a username as it says at the end of the bootstrapper. You'll do something
@@ -43,14 +43,25 @@ the Heroku Node.js sample app. All you have to do is add a remote to name the ap
remote: -----> Building node-js-app ...
remote: Node.js app detected
remote: -----> Resolving engine versions
... blah blah blah ...
remote: -----> Application deployed:
remote: http://node-js-app.progriumapp.com
You're done!
## Environment setup
Typically application requires some environment variables to be set up for proper run. Environment variables might contain some private date, like passwords and API keys, so it's not recommend to store them as part of source code.
To setup environment for your application, create file `/home/git/APP_NAME/ENV`. This file is a script that would expose all required environment variables, like:
export NODE_ENV=production
export MONGODB_PASSWORD=password
Next time the application is deployed, those variables would be exposed by `start` script.
## Advanced installation (for development)
If you plan on developing dokku, the easiest way to install from your own repository is cloning

12
dokku
View File

@@ -7,6 +7,9 @@ case "$1" in
echo "-----> Building $APP ..."
cat | dokku build $IMAGE
echo "-----> Build complete!"
echo "-----> Releasing $APP ..."
dokku release $APP $IMAGE
echo "-----> Release complete!"
echo "-----> Deploying $APP ..."
dokku deploy $APP $IMAGE
echo "=====> Application deployed:"
@@ -25,6 +28,15 @@ case "$1" in
docker commit $id $IMAGE > /dev/null
;;
release)
APP="$2"; IMAGE="$3"
if [[ -f "$HOME/$APP/ENV" ]]; then
id=$(cat "$HOME/$APP/ENV" | docker run -i -a stdin $IMAGE /bin/bash -c "mkdir -p /app/.profile.d && cat > /app/.profile.d/app-env.sh")
test $(docker wait $id) -eq 0
docker commit $id $IMAGE > /dev/null
fi
;;
deploy)
APP="$2"; IMAGE="$3"
pluginhook pre-deploy $APP $IMAGE