Merge pull request #941 from progrium/931-mh-source-glabal-env-deploy-run
source global env prior to app env. closes #931
This commit is contained in:
@@ -13,4 +13,4 @@ config:unset <app> KEY1 [KEY2 ...] - unset one or more config vars
|
|||||||
|
|
||||||
The variables are available both at at run time and during the application build/compilation step. You no longer need a `user-env` plugin as Dokku handles this functionality in a way equivalent to how Heroku handles it.
|
The variables are available both at at run time and during the application build/compilation step. You no longer need a `user-env` plugin as Dokku handles this functionality in a way equivalent to how Heroku handles it.
|
||||||
|
|
||||||
> Note: Global `BUILD_ENV` files are currently migrated into a global `ENV` file. Configuring your global `ENV` file is manual, and should be considered potentially dangerous as configuration applies to all applications.
|
> Note: Global `BUILD_ENV` files are currently migrated into a global `ENV` file and sourced before app-specific variables. This means that app-specific variables will take precedence over global variables. Configuring your global `ENV` file is manual, and should be considered potentially dangerous as configuration applies to all applications.
|
||||||
|
|||||||
7
dokku
7
dokku
@@ -67,8 +67,13 @@ case "$1" in
|
|||||||
release)
|
release)
|
||||||
APP="$2"; IMAGE="dokku/$APP"
|
APP="$2"; IMAGE="dokku/$APP"
|
||||||
pluginhook pre-release $APP
|
pluginhook pre-release $APP
|
||||||
|
if [[ -f "$DOKKU_ROOT/ENV" ]]; then
|
||||||
|
id=$(docker run -i -a stdin $IMAGE /bin/bash -c "mkdir -p /app/.profile.d && cat > /app/.profile.d/00-global-env.sh" < "$DOKKU_ROOT/ENV")
|
||||||
|
test "$(docker wait $id)" -eq 0
|
||||||
|
docker commit $id $IMAGE > /dev/null
|
||||||
|
fi
|
||||||
if [[ -f "$DOKKU_ROOT/$APP/ENV" ]]; then
|
if [[ -f "$DOKKU_ROOT/$APP/ENV" ]]; then
|
||||||
id=$(docker run -i -a stdin $IMAGE /bin/bash -c "mkdir -p /app/.profile.d && cat > /app/.profile.d/app-env.sh" < "$DOKKU_ROOT/$APP/ENV")
|
id=$(docker run -i -a stdin $IMAGE /bin/bash -c "mkdir -p /app/.profile.d && cat > /app/.profile.d/01-app-env.sh" < "$DOKKU_ROOT/$APP/ENV")
|
||||||
test "$(docker wait $id)" -eq 0
|
test "$(docker wait $id)" -eq 0
|
||||||
docker commit $id $IMAGE > /dev/null
|
docker commit $id $IMAGE > /dev/null
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
|||||||
CONTAINERID="$1"; APP="$2"; PORT="$3" ; HOSTNAME="${4:-localhost}"
|
CONTAINERID="$1"; APP="$2"; PORT="$3" ; HOSTNAME="${4:-localhost}"
|
||||||
|
|
||||||
# source in app env to get DOKKU_CHECKS_WAIT and any other necessary vars
|
# source in app env to get DOKKU_CHECKS_WAIT and any other necessary vars
|
||||||
|
[[ -f "$DOKKU_ROOT/ENV" ]] && source $DOKKU_ROOT/ENV
|
||||||
[[ -f "$DOKKU_ROOT/$APP/ENV" ]] && source $DOKKU_ROOT/$APP/ENV
|
[[ -f "$DOKKU_ROOT/$APP/ENV" ]] && source $DOKKU_ROOT/$APP/ENV
|
||||||
# echo "DOKKU_CHECKS_WAIT is $DOKKU_CHECKS_WAIT"
|
# echo "DOKKU_CHECKS_WAIT is $DOKKU_CHECKS_WAIT"
|
||||||
FILENAME="$DOKKU_ROOT/$APP/CHECKS"
|
FILENAME="$DOKKU_ROOT/$APP/CHECKS"
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ case "$1" in
|
|||||||
DOKKU_APP_LISTEN_IP=$(< "$DOKKU_ROOT/$APP/IP")
|
DOKKU_APP_LISTEN_IP=$(< "$DOKKU_ROOT/$APP/IP")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
[[ -f "$DOKKU_ROOT/ENV" ]] && source $DOKKU_ROOT/ENV
|
||||||
[[ -f "$DOKKU_ROOT/$APP/ENV" ]] && source $DOKKU_ROOT/$APP/ENV
|
[[ -f "$DOKKU_ROOT/$APP/ENV" ]] && source $DOKKU_ROOT/$APP/ENV
|
||||||
|
|
||||||
if [[ ! -n "$NO_VHOST" ]] && [[ -f "$DOKKU_ROOT/$APP/VHOST" ]]; then
|
if [[ ! -n "$NO_VHOST" ]] && [[ -f "$DOKKU_ROOT/$APP/VHOST" ]]; then
|
||||||
|
|||||||
@@ -3,11 +3,13 @@
|
|||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
|
sudo -H -u dokku /bin/bash -c "echo 'export global_test=true' > $DOKKU_ROOT/ENV"
|
||||||
create_app
|
create_app
|
||||||
}
|
}
|
||||||
|
|
||||||
teardown() {
|
teardown() {
|
||||||
destroy_app
|
destroy_app
|
||||||
|
rm -f "$DOKKU_ROOT/ENV"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "config:set" {
|
@test "config:set" {
|
||||||
@@ -46,3 +48,11 @@ teardown() {
|
|||||||
echo "status: "$status
|
echo "status: "$status
|
||||||
assert_output ""
|
assert_output ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "config (global)" {
|
||||||
|
deploy_app
|
||||||
|
run bash -c "dokku run $TEST_APP env | egrep '^global_test=true'"
|
||||||
|
echo "output: "$output
|
||||||
|
echo "status: "$status
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user