1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/integration-cli
Yong Tang 3599289e2c Fix duplicate mount point for --volumes-from in docker run
This fix tries to fix the issue raised in 21845. The issue with 21845
is that if multiple `--volumes-from` with the same destination has been
specified, then one volume will be overridden by the other. This will mess
up with volumes reference and prevent the overridden volume from
being removed at the end.

Issue 21845 was observed with `docker-compose` though it is possible to
emulate the same behavior with `docker` alone:
```
$ cat Dockerfile
FROM busybox
VOLUME ["/tmp/data"]
$ docker build -t vimage .
$ docker run --name=data1 vimage true
$ docker run --name=data2 vimage true
$ docker run --name=app --volumes-from=data1 --volumes-from=data2 -d busybox top
$ docker rm -f -v $(docker ps -aq)
$ docker volume ls
$ docker volume rm ...
```
NOTE: Second case:
```
$ cat Dockerfile
FROM busybox
VOLUME ["/tmp/data"]
$ docker build -t vimage .
$ docker run --name=data1 vimage true
$ docker run --name=data2 vimage true
$ docker run --name=app --volumes-from=data1 --volumes-from=data2 -v /tmp/data:/tmp/data -d busybox top
$ docker rm -f -v $(docker ps -aq)
$ docker volume ls
$ docker volume rm ...
```
NOTE: Third case: Combination of --volumes-from and `HostConfig.Mounts` (API only)

This fix tries to address the issue by return an error if duplicate
mount points was used with `--volumes-from`.

An integration test has been added.

This fix fixes 21845.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit 9526e5c6ae)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-02-22 23:37:49 -08:00
..
fixtures Remove secrets as part of stack remove. 2017-01-26 06:20:49 -08:00
benchmark_test.go
check_test.go
daemon.go
daemon_swarm.go
daemon_swarm_hack.go
daemon_unix.go
daemon_windows.go
docker_api_attach_test.go
docker_api_auth_test.go
docker_api_build_test.go
docker_api_containers_test.go
docker_api_create_test.go
docker_api_events_test.go
docker_api_exec_resize_test.go
docker_api_exec_test.go
docker_api_images_test.go Add test for image size for v1.12 and v1.13 clients against v1.13 daemon 2017-01-11 17:59:31 -08:00
docker_api_info_test.go
docker_api_inspect_test.go
docker_api_inspect_unix_test.go
docker_api_logs_test.go
docker_api_network_test.go
docker_api_resize_test.go
docker_api_service_update_test.go
docker_api_stats_test.go
docker_api_stats_unix_test.go
docker_api_swarm_test.go Merge pull request #26576 from allencloud/change-cluster-response-status-code 2017-02-17 13:24:24 -08:00
docker_api_test.go
docker_api_update_unix_test.go
docker_api_version_test.go
docker_api_volumes_test.go
docker_cli_attach_test.go
docker_cli_attach_unix_test.go
docker_cli_authz_plugin_v2_test.go Set plugins used in tests back to original names 2017-01-09 06:37:40 -08:00
docker_cli_authz_unix_test.go
docker_cli_build_test.go image/cache: fix isValidParent logic 2017-02-22 14:47:09 -08:00
docker_cli_build_unix_test.go
docker_cli_by_digest_test.go
docker_cli_commit_test.go commit: do not change container labels on commit 2017-01-04 12:42:42 +01:00
docker_cli_config_test.go
docker_cli_cp_from_container_test.go
docker_cli_cp_test.go
docker_cli_cp_to_container_test.go
docker_cli_cp_to_container_unix_test.go
docker_cli_cp_utils.go
docker_cli_create_test.go
docker_cli_daemon_plugins_test.go
docker_cli_daemon_test.go Follow up #29365, fix fail to remove container after restart 2017-01-05 20:27:34 -05:00
docker_cli_diff_test.go
docker_cli_events_test.go
docker_cli_events_unix_test.go
docker_cli_exec_test.go
docker_cli_exec_unix_test.go
docker_cli_experimental_test.go
docker_cli_export_import_test.go
docker_cli_external_graphdriver_unix_test.go Fix race/deadlock in v1 plugin handlers 2017-01-04 12:44:55 +01:00
docker_cli_external_volume_driver_unix_test.go
docker_cli_health_test.go
docker_cli_help_test.go
docker_cli_history_test.go
docker_cli_images_test.go
docker_cli_import_test.go
docker_cli_info_test.go
docker_cli_info_unix_test.go
docker_cli_inspect_test.go Fix inspect object by invalid reference 2017-01-04 12:42:40 +01:00
docker_cli_kill_test.go
docker_cli_links_test.go
docker_cli_links_unix_test.go
docker_cli_login_test.go
docker_cli_logout_test.go
docker_cli_logs_bench_test.go
docker_cli_logs_test.go
docker_cli_nat_test.go
docker_cli_netmode_test.go
docker_cli_network_unix_test.go Revert "Fix IT case for network name validation" 2017-02-02 15:32:59 -08:00
docker_cli_oom_killed_test.go
docker_cli_pause_test.go
docker_cli_plugins_test.go Make propagated mount persist outside rootfs 2017-02-03 19:15:23 -05:00
docker_cli_port_test.go
docker_cli_proxy_test.go
docker_cli_prune_unix_test.go
docker_cli_ps_test.go Fix failure in docker ps --format when .Label has args 2017-01-24 17:45:05 -08:00
docker_cli_pull_local_test.go
docker_cli_pull_test.go
docker_cli_pull_trusted_test.go
docker_cli_push_test.go
docker_cli_registry_user_agent_test.go
docker_cli_rename_test.go
docker_cli_restart_test.go
docker_cli_rm_test.go
docker_cli_rmi_test.go
docker_cli_run_test.go Windows: Unify workdir handling 2017-02-03 00:40:46 -08:00
docker_cli_run_unix_test.go
docker_cli_save_load_test.go
docker_cli_save_load_unix_test.go
docker_cli_search_test.go
docker_cli_secret_create_test.go remove -f on secret create and unify usage with other commands 2017-01-09 06:37:40 -08:00
docker_cli_secret_inspect_test.go
docker_cli_service_create_test.go
docker_cli_service_health_test.go
docker_cli_service_logs_experimental_test.go
docker_cli_service_scale_test.go
docker_cli_service_update_test.go
docker_cli_sni_test.go
docker_cli_stack_test.go fix cherry-pick 2017-01-27 11:09:43 -08:00
docker_cli_start_test.go
docker_cli_stats_test.go Merge pull request #29702 from WeiZhang555/stats-all-format-name-panic 2017-02-17 22:15:04 -08:00
docker_cli_stop_test.go
docker_cli_swarm_test.go Release the network attachment on allocation failure 2017-02-17 16:05:49 -08:00
docker_cli_swarm_unix_test.go
docker_cli_tag_test.go
docker_cli_top_test.go
docker_cli_update_test.go
docker_cli_update_unix_test.go Fix update clear the restart policy of monitor 2017-01-04 12:44:55 +01:00
docker_cli_userns_test.go
docker_cli_v2_only_test.go
docker_cli_version_test.go
docker_cli_volume_test.go Fix duplicate mount point for --volumes-from in docker run 2017-02-22 23:37:49 -08:00
docker_cli_wait_test.go
docker_deprecated_api_v124_test.go
docker_deprecated_api_v124_unix_test.go
docker_experimental_network_test.go
docker_hub_pull_suite_test.go
docker_test_vars.go
docker_utils.go
events_utils.go
fixtures.go
fixtures_linux_daemon.go
npipe.go
npipe_windows.go
registry.go
registry_mock.go
requirements.go
requirements_unix.go
test_vars.go
test_vars_exec.go
test_vars_noexec.go
test_vars_noseccomp.go
test_vars_seccomp.go
test_vars_unix.go
test_vars_windows.go
trust_server.go
utils.go