mirror of https://github.com/docker/docs.git
91 lines
2.1 KiB
Bash
91 lines
2.1 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load ../helpers
|
|
|
|
function teardown() {
|
|
swarm_manage_cleanup
|
|
stop_docker
|
|
}
|
|
|
|
@test "docker save" {
|
|
# Start one empty host and one with busybox to ensure swarm selects the
|
|
# right one (and not one at random).
|
|
start_docker 1
|
|
start_docker_with_busybox 1
|
|
swarm_manage
|
|
|
|
# make sure busybox image exists
|
|
run docker_swarm images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
|
|
temp_file_name=$(mktemp)
|
|
temp_file_name_o=$(mktemp)
|
|
|
|
# save >, image->tar
|
|
docker_swarm save busybox > $temp_file_name
|
|
# save -o, image->tar
|
|
docker_swarm save -o $temp_file_name_o busybox
|
|
|
|
# saved image file exists, not empty and is tar file
|
|
[ -s $temp_file_name ]
|
|
run file $temp_file_name
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"tar archive"* ]]
|
|
|
|
[ -s $temp_file_name_o ]
|
|
run file $temp_file_name_o
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"tar archive"* ]]
|
|
|
|
# after ok, delete saved tar file
|
|
rm -f $temp_file_name
|
|
rm -f $temp_file_name_o
|
|
}
|
|
|
|
@test "docker save multi-images" {
|
|
start_docker_with_busybox 2
|
|
# tag busybox
|
|
docker -H ${HOSTS[0]} tag busybox test1
|
|
docker -H ${HOSTS[1]} tag busybox test2
|
|
|
|
# start manage
|
|
swarm_manage
|
|
|
|
# make sure image exists
|
|
run docker_swarm images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"test1"* ]]
|
|
[[ "${output}" == *"test2"* ]]
|
|
|
|
local temp_file_name=$(mktemp)
|
|
|
|
# do not support save images which are on multi machine
|
|
run docker_swarm save -o "$temp_file_name" busybox test1 test2
|
|
[ "$status" -ne 0 ]
|
|
[[ "${output}" == *"Unable to find an engine containing all images"* ]]
|
|
|
|
# save images which are on same machine
|
|
docker_swarm save -o "$temp_file_name" busybox test1
|
|
|
|
# saved image file exists, not empty and is tar file
|
|
[ -s $temp_file_name ]
|
|
run file $temp_file_name
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"tar archive"* ]]
|
|
|
|
# Try to load our image back on an empty docker engine.
|
|
start_docker 1
|
|
run docker -H "${HOSTS[2]}" images -q
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
docker -H "${HOSTS[2]}" load -i "$temp_file_name"
|
|
run docker -H ${HOSTS[2]} images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"test1"* ]]
|
|
|
|
rm -f $temp_file_name
|
|
}
|