Merge pull request #2256 from dokku/2254_mh-remove-storage-mount-on-build

Revert automatically binding storage mounts in build phase
This commit is contained in:
Jose Diaz-Gonzalez
2016-06-20 14:50:02 -04:00
committed by GitHub
4 changed files with 11 additions and 17 deletions

View File

@@ -41,6 +41,15 @@ Your app may be used in a cluster that requires containers or resources not runn
Your app may have services that are running in memory and need to be backed up locally (like a key store). Mount a non ephemeral storage mount will allow backups that are not lost when the app is shut down.
### Build phase
By default, dokku will only bind storage mounts during the deploy and run phases. Under certain conditions, one might want to bind a storage mount during the build phase. This can be accomplished by using the `docker-options` plugin directly.
```
$ dokku docker-options:add <app> "-v /tmp/python-test:/opt/test"
```
NOTE: **This can cause data loss** if you bind a mount under `/app` in buildpack apps as herokuish will attempt to remove the original app path during the build phase.
## Docker-Options Note
The storage plugins is compatible with storage mounts created with the docker-options. The storage plugin will only list mounts from the deploy phase.

View File

@@ -7,7 +7,7 @@ source "$PLUGIN_CORE_AVAILABLE_PATH/docker-options/functions"
storage_mount_cmd() {
declare desc="Add bind-mount, redeploy app if running"
local cmd="storage:mount"
local passed_phases=(build deploy run)
local passed_phases=(deploy run)
[[ -z $3 || $4 ]] && dokku_log_fail "storage:mount requires an app and a two paths divided by colon."
verify_app_name "$2" && local APP="$2"
verify_paths "$3" && local MOUNT_PATH="$3"

View File

@@ -7,7 +7,7 @@ source "$PLUGIN_CORE_AVAILABLE_PATH/docker-options/functions"
storage_unmount_cmd() {
declare desc="Remove bind-mount, restart app if running"
local cmd="storage:unmount"
local passed_phases=(build deploy run)
local passed_phases=(deploy run)
[[ -z $3 || $4 ]] && dokku_log_fail "storage:unmount requires an app and a two paths divided by colon."
verify_app_name "$2" && local APP="$2"
verify_paths "$3" && local MOUNT_PATH="$3"

View File

@@ -38,18 +38,3 @@ teardown() {
assert_output "Mount path does not exist."
assert_failure
}
@test "(storage) storage:mount (dockerfile)" {
run /bin/bash -c "dokku storage:mount $TEST_APP /tmp/mount:/mount"
echo "output: "$output
echo "status: "$status
assert_success
deploy_app dockerfile
CID=$(< $DOKKU_ROOT/$TEST_APP/CONTAINER.web.1)
run /bin/bash -c "docker inspect -f '{{ .HostConfig.Binds }}' $CID"
echo "output: "$output
echo "status: "$status
assert_output "[/tmp/mount:/mount]"
}