mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
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:
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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]"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user