From 3165f14c78bf2c5101194ec82c0ec80f962436ab Mon Sep 17 00:00:00 2001 From: Misty Stanley-Jones Date: Thu, 29 Sep 2016 12:11:03 -0700 Subject: [PATCH] Initial import of https://github.com/docker/pinata --- .gitattributes | 1 - .github/ISSUE_TEMPLATE.md | 51 - .github/PULL_REQUEST_TEMPLATE.md | 30 - .gitignore | 62 + CHANGELOG | 1130 +++ MAINTAINERS | 21 + Makefile | 254 + README.md | 163 + appveyor.yml | 54 + circle-linux.yml | 27 + circle.yml | 105 + docs/Dockerfile | 10 + docs/Makefile | 39 + docs/docker-for-mac/docker-toolbox.md | 145 + docs/docker-for-mac/examples.md | 38 + docs/docker-for-mac/faqs.md | 156 + docs/docker-for-mac/images/About.png | Bin 0 -> 55964 bytes .../images/changelog-placeholder.png | Bin 0 -> 329174 bytes docs/docker-for-mac/images/chat.png | Bin 0 -> 234 bytes docs/docker-for-mac/images/console_logs.png | Bin 0 -> 113241 bytes .../images/console_logs_search.png | Bin 0 -> 24336 bytes .../images/diagnose-d4mac-issues-template.png | Bin 0 -> 136930 bytes .../images/diagnose-id-forums.png | Bin 0 -> 137780 bytes docs/docker-for-mac/images/diagnose-issue.png | Bin 0 -> 122705 bytes docs/docker-for-mac/images/diagnose.png | Bin 0 -> 81334 bytes .../images/diagnostic-forums-topic.png | Bin 0 -> 106664 bytes .../images/docker-app-drag-old.png | Bin 0 -> 162846 bytes .../docker-for-mac/images/docker-app-drag.png | Bin 0 -> 91209 bytes .../docker-app-in-apps-no-annotation.png | Bin 0 -> 144844 bytes .../images/docker-app-in-apps.png | Bin 0 -> 146365 bytes docs/docker-for-mac/images/docker-app-log.png | Bin 0 -> 73288 bytes docs/docker-for-mac/images/docker-app.png | Bin 0 -> 141912 bytes .../images/docker-for-mac-and-toolbox.png | Bin 0 -> 212272 bytes .../images/docker-for-mac-install.png | Bin 0 -> 108709 bytes docs/docker-for-mac/images/download.png | Bin 0 -> 2751 bytes .../images/hello-world-nginx.png | Bin 0 -> 52072 bytes docs/docker-for-mac/images/hello-world.png | Bin 0 -> 107637 bytes .../images/hockeyapp-docker.png | Bin 0 -> 68755 bytes .../images/log-files-finder.png | Bin 0 -> 101485 bytes docs/docker-for-mac/images/logs.png | Bin 0 -> 28992 bytes .../mac-activity-monitor-docker-app.png | Bin 0 -> 52587 bytes .../images/mac-install-success-docker-ps.png | Bin 0 -> 60613 bytes .../mac-install-success-docker-wait.png | Bin 0 -> 34327 bytes docs/docker-for-mac/images/menu.png | Bin 0 -> 30682 bytes docs/docker-for-mac/images/privacy.png | Bin 0 -> 43511 bytes docs/docker-for-mac/images/proxy-settings.png | Bin 0 -> 199716 bytes .../images/remove-app-instances.png | Bin 0 -> 70451 bytes .../images/settings-advanced.png | Bin 0 -> 35549 bytes .../images/settings-diagnose-id.png | Bin 0 -> 84842 bytes .../images/settings-diagnose.png | Bin 0 -> 98261 bytes .../settings-diagnostic-results-only.png | Bin 0 -> 133120 bytes .../images/settings-file-share-choose.png | Bin 0 -> 35571 bytes .../images/settings-file-share.png | Bin 0 -> 38254 bytes .../images/settings-uninstall.png | Bin 0 -> 33511 bytes docs/docker-for-mac/images/settings.png | Bin 0 -> 36735 bytes docs/docker-for-mac/images/startup-help.png | Bin 0 -> 68548 bytes .../docker-for-mac/images/toolbox-install.png | Bin 0 -> 125634 bytes .../images/whale-in-menu-bar.png | Bin 0 -> 15385 bytes docs/docker-for-mac/images/whale-x.png | Bin 0 -> 6807 bytes docs/docker-for-mac/images/whale.png | Bin 0 -> 7315 bytes docs/docker-for-mac/index.md | 293 + docs/docker-for-mac/menu.md | 14 + docs/docker-for-mac/multi-arch.md | 48 + docs/docker-for-mac/networking.md | 121 + docs/docker-for-mac/opensource.md | 34 + docs/docker-for-mac/osxfs.md | 166 + docs/docker-for-mac/release-notes.md | 1159 +++ docs/docker-for-mac/troubleshoot.md | 332 + docs/docker-for-windows/examples.md | 38 + docs/docker-for-windows/faqs.md | 153 + .../images/Config-popup.png | Bin 0 -> 464446 bytes .../images/Docker-win-settings.png | Bin 0 -> 128185 bytes .../images/Start-Authorize.png | Bin 0 -> 49238 bytes docs/docker-for-windows/images/Start-init.png | Bin 0 -> 37531 bytes .../images/about-docker-win.png | Bin 0 -> 35903 bytes docs/docker-for-windows/images/chat.png | Bin 0 -> 234 bytes ...onfig-popup-menu-win-switch-containers.png | Bin 0 -> 259263 bytes .../images/config-popup-menu-win.png | Bin 0 -> 263135 bytes .../images/desktop-whale-icon.png | Bin 0 -> 30863 bytes .../images/diagnose-d4win-issues-template.png | Bin 0 -> 145879 bytes .../images/diagnose-feedback-id-win.png | Bin 0 -> 154865 bytes .../images/diagnose-feedback-win.png | Bin 0 -> 127510 bytes .../images/docker-daemon.png | Bin 0 -> 88947 bytes .../images/docker-is-running.png | Bin 0 -> 18112 bytes docs/docker-for-windows/images/download.png | Bin 0 -> 2751 bytes .../images/hyper-v-message.png | Bin 0 -> 38432 bytes .../images/import-docker-content.png | Bin 0 -> 43278 bytes .../images/installer-allow.png | Bin 0 -> 12075 bytes .../images/installer-finishes.png | Bin 0 -> 34913 bytes .../images/installer-in-downloads.png | Bin 0 -> 18193 bytes .../images/installer-license-ok.png | Bin 0 -> 29592 bytes .../images/installer-license-show.png | Bin 0 -> 93309 bytes .../images/installer-progress-bar.png | Bin 0 -> 12245 bytes docs/docker-for-windows/images/proxies.png | Bin 0 -> 90691 bytes docs/docker-for-windows/images/run-nginx.png | Bin 0 -> 9837 bytes .../images/settings-cpu-ram.png | Bin 0 -> 41892 bytes .../images/settings-docker-win.png | Bin 0 -> 87037 bytes .../images/settings-general.png | Bin 0 -> 104144 bytes .../images/settings-kernel.png | Bin 0 -> 61963 bytes .../images/settings-network.png | Bin 0 -> 92402 bytes .../images/settings-reset.png | Bin 0 -> 62642 bytes .../images/settings-shared-drives.png | Bin 0 -> 40038 bytes .../images/settings-toolbox-import.png | Bin 0 -> 74431 bytes .../images/submit-token.png | Bin 0 -> 15136 bytes .../images/whale-systray.png | Bin 0 -> 341510 bytes docs/docker-for-windows/images/whale-x.png | Bin 0 -> 6807 bytes .../images/win-file-and-printer-sharing.png | Bin 0 -> 57166 bytes .../win-install-success-hello-world.png | Bin 0 -> 87199 bytes .../images/win-install-success-popup.png | Bin 0 -> 95849 bytes .../images/win-install-success.png | Bin 0 -> 198270 bytes docs/docker-for-windows/index.md | 429 + docs/docker-for-windows/menu.md | 14 + docs/docker-for-windows/opensource.md | 28 + docs/docker-for-windows/release-notes.md | 929 +++ docs/docker-for-windows/troubleshoot.md | 300 + docs/images/chat.png | Bin 0 -> 234 bytes docs/images/download-mac.png | Bin 0 -> 10656 bytes docs/images/download-win.png | Bin 0 -> 13744 bytes docs/images/download.png | Bin 0 -> 2751 bytes docs/images/whale-x.png | Bin 0 -> 6807 bytes project/DOCS.md | 3 + project/ISSUE-TRIAGE.md | 161 + project/MAC-RELEASE.md | 59 + project/MAC-TESTING.md | 54 + project/RELEASE-CHECKLIST.md | 43 + project/RELEASE.md | 325 + project/ROADMAP.md | 24 + project/SUPPORT.md | 80 + project/WIN-RELEASE.md | 46 + project/WIN-TESTING.md | 70 + project/designs/TRIM.md | 152 + scripts/token/main.go | 158 + scripts/token/main_test.go | 67 + support/README.md | 5 + support/nurse/.gitignore | 25 + support/nurse/.merlin | 17 + support/nurse/Makefile | 12 + support/nurse/TODO.md | 75 + support/nurse/_tags | 5 + support/nurse/build.sh | 4 + support/nurse/opam | 18 + support/nurse/src/_tags | 6 + support/nurse/src/archive.ml | 141 + support/nurse/src/archive.mli | 32 + support/nurse/src/cache.ml | 107 + support/nurse/src/cache.mli | 12 + support/nurse/src/command.ml | 23 + support/nurse/src/command.mli | 3 + support/nurse/src/docker.ml | 7 + support/nurse/src/docker.mli | 7 + support/nurse/src/labels.ml | 139 + support/nurse/src/nurse.ml | 352 + support/nurse/src/nurse_clean.ml | 94 + support/nurse/src/problem.ml | 117 + support/nurse/src/problem.mli | 13 + support/s3/.dockerignore | 2 + support/s3/.gitignore | 4 + support/s3/Dockerfile.awscli | 10 + support/s3/Dockerfile.fetch | 10 + support/s3/Dockerfile.tohtml | 4 + support/s3/README.md | 63 + support/s3/fetch.sh | 43 + support/s3/formatter/process-all-users.sh | 39 + support/s3/formatter/process-one-upload.sh | 66 + support/s3/formatter/process-one-user.sh | 49 + support/s3/s3creds.env.in | 2 + support/s3/sync.sh | 13 + support/s3/tohtml.sh | 19 + tests/.gitignore | 3 + tests/LICENSE | 176 + tests/README.md | 451 ++ tests/cases/.gitattributes | 2 + tests/cases/.gitignore | 1 + .../010_installer/005_check_for_sudo/test.sh | 9 + .../010_installer/007_extract_dmg/test.sh | 15 + .../010_installer/010_uninstall/test.sh | 20 + .../000_osx/010_installer/020_install/test.sh | 12 + .../030_repeat_uninstall_install/test.sh | 10 + .../010_installer/040_check-binaries/test.sh | 50 + .../010_installer/050_docker-diagnose/test.sh | 11 + .../000_osx/020_leaks/010_vmnetd/test.sh | 66 + tests/cases/000_osx/020_leaks/020_db/test.sh | 66 + .../000_osx/020_leaks/030_hyperkit/test.sh | 91 + .../cases/000_osx/020_leaks/040_osxfs/test.sh | 72 + tests/cases/000_osx/group.sh | 35 + .../000_check_uninstalled/test.sh | 19 + .../000_win/000_installer/005_install/test.sh | 11 + .../010_uninstall_install/test.sh | 17 + .../000_win/000_installer/020_start/test.sh | 20 + .../050_uninstall_install_running/test.sh | 23 + tests/cases/000_win/000_installer/group.sh | 37 + .../010_basic/000_migratemachine/disk.vmdk | 3 + .../010_basic/000_migratemachine/test.sh | 20 + .../000_win/010_basic/010_stopstart/test.sh | 21 + .../010_basic/020_resettodefault/test.sh | 21 + .../020_volumes/000_modifyshare/test.sh | 40 + .../020_volumes/010_passwords/.gitignore | 3 + .../020_volumes/010_passwords/newuser.ps1 | 7 + .../000_win/020_volumes/010_passwords/test.sh | 88 + .../cases/000_win/030_network/000_dns/test.sh | 18 + .../000_win/030_network/010_subnet/test.sh | 22 + .../040_advanced/000_cpu_memory/test.sh | 30 + .../040_advanced/010_daemon_json/test.sh | 20 + .../050_win_containers/000_info/test.sh | 25 + .../050_win_containers/010_hello/test.sh | 19 + tests/cases/000_win/group.sh | 37 + .../010_backend/000_basic/001_ps/test.sh | 14 + .../010_backend/000_basic/002_version/test.sh | 30 + .../000_basic/005_experimental/test.sh | 15 + .../010_backend/000_basic/010_hello/test.sh | 12 + .../010_backend/000_basic/015_inspect/test.sh | 22 + .../010_backend/000_basic/020_port/Dockerfile | 3 + .../000_basic/020_port/default.conf | 8 + .../010_backend/000_basic/020_port/test.sh | 48 + .../000_basic/030_build_interrupt/Dockerfile | 2 + .../000_basic/030_build_interrupt/test.sh | 43 + .../000_basic/050_context_fixed/Dockerfile | 3 + .../000_basic/050_context_fixed/test.sh | 31 + .../000_basic/051_context_random/Dockerfile | 3 + .../000_basic/051_context_random/test.sh | 58 + .../000_basic/100_basic_stdio/test.sh | 25 + .../000_basic/200_stress_simple/commands.txt | 4 + .../000_basic/200_stress_simple/test.sh | 26 + .../010_backend/010_volumes/000_mount/sep | 0 .../010_backend/010_volumes/000_mount/test.sh | 22 + .../010_volumes/001_touch_file/test.sh | 20 + .../010_volumes/002_dentry/Dockerfile | 3 + .../010_volumes/002_dentry/dentry_test.sh | 78 + .../010_volumes/002_dentry/test.sh | 20 + .../010_backend/010_volumes/005_dd/test.sh | 35 + .../010_volumes/010_create_child/Dockerfile | 5 + .../010_create_child/create_child.c | 31 + .../010_volumes/010_create_child/test.sh | 24 + .../010_fresh_rename_child/test.sh | 20 + .../010_backend/010_volumes/010_mode0/test.sh | 22 + .../010_volumes/010_rename_subdir/Dockerfile | 3 + .../010_rename_subdir/rename_subdir.py | 8 + .../010_volumes/010_rename_subdir/test.sh | 20 + .../010_volumes/010_rmdir_nonempty/Dockerfile | 3 + .../010_rmdir_nonempty/rmdir_nonempty.sh | 9 + .../010_volumes/010_rmdir_nonempty/test.sh | 21 + .../010_trans_rename_unlink/Dockerfile | 5 + .../010_trans_rename_unlink/test.sh | 21 + .../trans_rename_unlink.c | 39 + .../010_volumes/015_open_flags/Dockerfile | 3 + .../010_volumes/015_open_flags/open_flags.py | 7 + .../010_volumes/015_open_flags/test.sh | 17 + .../010_volumes/020_hardlink/Dockerfile | 3 + .../010_volumes/020_hardlink/hardlink.sh | 9 + .../010_volumes/020_hardlink/test.sh | 22 + .../010_volumes/020_symlink/Dockerfile | 3 + .../010_volumes/020_symlink/symlink.sh | 9 + .../010_volumes/020_symlink/test.sh | 23 + .../010_volumes/020_symlink/verify.sh | 9 + .../010_volumes/025_npm_install/test.sh | 17 + .../010_volumes/030_fifo_copy/Dockerfile | 3 + .../010_volumes/030_fifo_copy/fifo_copy.sh | 8 + .../010_volumes/030_fifo_copy/test.sh | 27 + .../010_volumes/035_socket_chmod/Dockerfile | 4 + .../035_socket_chmod/socket_chmod.sh | 41 + .../010_volumes/035_socket_chmod/test.sh | 20 + .../010_volumes/035_socket_copy/Dockerfile | 4 + .../035_socket_copy/socket_copy.sh | 40 + .../010_volumes/035_socket_copy/test.sh | 25 + .../040_sendfile_ones_10M/Dockerfile | 3 + .../sendfile_ones_10M.py | 15 + .../010_volumes/040_sendfile_ones_10M/test.sh | 17 + .../040_sendfile_ones_64K/Dockerfile | 3 + .../sendfile_ones_64K.py | 15 + .../010_volumes/040_sendfile_ones_64K/test.sh | 18 + .../010_volumes/050_chown/Dockerfile | 5 + .../010_volumes/050_chown/chown_test.c | 33 + .../010_volumes/050_chown/chown_test.sh | 95 + .../010_backend/010_volumes/050_chown/test.sh | 17 + .../010_volumes/050_utimes/test.sh | 41 + .../010_volumes/060_perl_i/test.sh | 28 + .../010_volumes/070_statfs/test.sh | 10 + .../010_volumes/080_opendir_recreate/test.sh | 38 + .../010_volumes/100_inotify/Dockerfile | 4 + .../010_volumes/100_inotify/events.sh | 71 + .../010_volumes/100_inotify/inotify.sh | 27 + .../010_volumes/100_inotify/run_inotify.sh | 57 + .../010_volumes/100_inotify/test.sh | 21 + .../110_inotify_interference/Dockerfile | 5 + .../110_inotify_interference/interfere.c | 85 + .../110_inotify_interference/test.sh | 59 + .../010_volumes/120_cycle_with_events/test.sh | 30 + .../010_bind_port_eaddrinuse/Dockerfile | 1 + .../010_bind_port_eaddrinuse/test.sh | 65 + .../010_bind_port_eaddrnotavail/Dockerfile | 1 + .../010_bind_port_eaddrnotavail/test.sh | 70 + .../010_bind_port_twice/Dockerfile | 3 + .../010_bind_port_twice/default.conf | 8 + .../020_network/010_bind_port_twice/test.sh | 32 + .../010_bind_priv_port_twice/Dockerfile | 3 + .../010_bind_priv_port_twice/default.conf | 8 + .../010_bind_priv_port_twice/test.sh | 32 + .../010_both_ports_different/Dockerfile | 3 + .../010_both_ports_different/default.conf | 8 + .../010_both_ports_different/test.sh | 25 + .../010_local_dns_lookup_tcp/Dockerfile | 5 + .../010_local_dns_lookup_tcp/run.sh | 24 + .../010_local_dns_lookup_tcp/test.sh | 19 + .../010_local_dns_lookup_udp/Dockerfile | 5 + .../010_local_dns_lookup_udp/run.sh | 24 + .../010_local_dns_lookup_udp/test.sh | 18 + .../010_ntp_from_default_gateway/Makefile | 6 + .../010_remote_dns_lookup_tcp/Dockerfile | 5 + .../010_remote_dns_lookup_tcp/run.sh | 24 + .../010_remote_dns_lookup_tcp/test.sh | 18 + .../010_remote_dns_lookup_udp/Dockerfile | 5 + .../010_remote_dns_lookup_udp/run.sh | 24 + .../010_remote_dns_lookup_udp/test.sh | 18 + .../020_network/020_proxy/Dockerfile | 4 + .../010_backend/020_network/020_proxy/test.sh | 103 + .../030_tcp_xfer_to_fixed/Dockerfile | 3 + .../020_network/030_tcp_xfer_to_fixed/test.sh | 69 + .../020_network/030_tcp_xfer_to_fixed/xfer.py | 43 + .../031_tcp_xfer_to_random/Dockerfile | 2 + .../031_tcp_xfer_to_random/rt-filemd5 | 35 + .../031_tcp_xfer_to_random/test.sh | 93 + .../031_tcp_xfer_to_random/xfer.py | 43 + .../032_udp_datagram_sizes/Dockerfile | 3 + .../032_udp_datagram_sizes/receiver.py | 25 + .../032_udp_datagram_sizes/sender.py | 55 + .../032_udp_datagram_sizes/test.sh | 44 + .../020_network/040_http_post/Dockerfile | 2 + .../020_network/040_http_post/http_post.py | 17 + .../020_network/040_http_post/test.sh | 33 + .../020_network/050_http_conn_to/http_conn.py | 71 + .../020_network/050_http_conn_to/test.sh | 33 + .../050_http_open_conn_to/http_open_conn.py | 60 + .../020_network/050_http_open_conn_to/test.sh | 23 + .../020_network/051_http_conn_from/Dockerfile | 3 + .../051_http_conn_from/http_conn.py | 86 + .../020_network/051_http_conn_from/test.sh | 35 + .../020_network/100_nmap_host/Dockerfile | 5 + .../020_network/100_nmap_host/run.sh | 18 + .../020_network/100_nmap_host/test.sh | 41 + tests/cases/010_backend/020_network/TODO | 1 + .../001_hello_world/docker-compose.yml | 2 + .../050_compose/001_hello_world/test.sh | 21 + .../100_compose_integration/test.sh | 43 + .../070_swarmkit/001_nginx/test.sh | 21 + tests/cases/010_backend/070_swarmkit/group.sh | 57 + tests/cases/010_backend/080_release/test.sh | 71 + .../cases/010_backend/081_diagnostics/test.sh | 41 + tests/cases/010_backend/100_apps/.gitignore | 1 + tests/cases/010_backend/100_apps/README.md | 6 + .../100_apps/django_example/Dockerfile | 7 + .../100_apps/django_example/db.txt | 7 + .../django_example/docker-compose.yml | 13 + .../100_apps/django_example/requirements.txt | 2 + .../100_apps/django_example/test.sh | 29 + .../100_apps/dotnet_restore/Dockerfile | 4 + .../100_apps/dotnet_restore/project.json | 24 + .../100_apps/dotnet_restore/test.sh | 18 + .../elastic_search/docker-compose.yml | 35 + .../100_apps/elastic_search/test.sh | 84 + .../100_apps/rails_example/.gitignore | 13 + .../100_apps/rails_example/Dockerfile | 8 + .../100_apps/rails_example/Gemfile.new | 2 + .../100_apps/rails_example/database.yml | 12 + .../100_apps/rails_example/docker-compose.yml | 13 + .../100_apps/rails_example/test.sh | 39 + .../100_apps/sqlite_shared_db/Dockerfile | 5 + .../100_apps/sqlite_shared_db/test.sh | 20 + tests/cases/010_backend/100_apps/ucp/test.sh | 19 + .../100_apps/voting-app-3rd/LICENSE | 191 + .../100_apps/voting-app-3rd/MAINTAINERS | 4 + .../100_apps/voting-app-3rd/README.md | 33 + .../voting-app-3rd/docker-compose.yml | 56 + .../voting-app-3rd/result-app/Dockerfile | 15 + .../voting-app-3rd/result-app/package.json | 20 + .../voting-app-3rd/result-app/server.js | 78 + .../voting-app-3rd/result-app/views/app.js | 45 + .../result-app/views/birthday.html | 24 + .../result-app/views/config.json | 7 + .../result-app/views/index.html | 41 + .../result-app/views/socket.io.js | 6988 +++++++++++++++++ .../result-app/views/stylesheets/style.css | 111 + .../100_apps/voting-app-3rd/test.sh | 26 + .../voting-app-3rd/voting-app/Dockerfile | 18 + .../100_apps/voting-app-3rd/voting-app/app.py | 44 + .../voting-app/requirements.txt | 2 + .../voting-app/static/stylesheets/style.css | 129 + .../voting-app/templates/index.html | 49 + .../voting-app/utils/__init__.py | 17 + .../100_apps/voting-app-3rd/worker/Dockerfile | 15 + .../100_apps/voting-app-3rd/worker/pom.xml | 84 + .../worker/src/main/java/worker/Worker.java | 101 + .../100_apps/wordpress_example/Dockerfile | 2 + .../wordpress_example/docker-compose.yml | 15 + .../100_apps/wordpress_example/test.sh | 40 + .../100_apps/wordpress_example/wp-config.php | 26 + tests/cases/010_backend/group.sh | 41 + .../cases/100_benchmarks/000_samba/.gitignore | 1 + .../000_samba/00.BuildPerfTest.ps1 | 3 + .../000_samba/01.setuptestenv.ps1 | 45 + .../000_samba/PerfTest/Dockerfile | 5 + .../000_samba/PerfTest/Main.cpp | 135 + tests/cases/100_benchmarks/000_samba/test.sh | 76 + tests/cases/100_benchmarks/010_db2/Dockerfile | 6 + tests/cases/100_benchmarks/010_db2/test.sh | 25 + tests/cases/100_benchmarks/TODO | 0 tests/cases/100_benchmarks/dummy/test.sh | 0 tests/cases/100_benchmarks/group.sh | 33 + tests/cases/README.md | 121 + tests/cases/_lib/lib.sh | 71 + tests/cases/_lib/sh/lib_osx.sh | 235 + tests/cases/_lib/sh/lib_win.sh | 166 + tests/cases/group.sh | 172 + tests/etc/ssh/id_rsa | 27 + tests/etc/ssh/id_rsa.pub | 1 + tests/etc/templates/group.sh | 36 + tests/etc/templates/test.sh | 20 + tests/etc/vm-templates/.gitignore | 4 + tests/etc/vm-templates/Makefile | 33 + tests/etc/vm-templates/README.md | 75 + .../answer_files/10-edu/Autounattend.xml | 218 + .../answer_files/10-ent/Autounattend.xml | 218 + .../answer_files/10-pro/Autounattend.xml | 218 + tests/etc/vm-templates/floppy/PinTo10.exe | Bin 0 -> 78442 bytes tests/etc/vm-templates/floppy/ReadMe.txt | 38 + .../vm-templates/floppy/WindowsPowershell.lnk | Bin 0 -> 2488 bytes tests/etc/vm-templates/packer/osx-10.10.json | 5 + tests/etc/vm-templates/packer/osx-10.11.json | 5 + tests/etc/vm-templates/packer/osx-10.12.json | 5 + tests/etc/vm-templates/packer/osx.json | 93 + .../vm-templates/packer/win-10-ent-10586.json | 7 + .../vm-templates/packer/win-10-pro-10586.json | 7 + .../vm-templates/packer/win-10-pro-14393.json | 7 + tests/etc/vm-templates/packer/win-10.json | 87 + .../prepare_osx_iso/prepare_iso.sh | 349 + .../support/OSInstall.collection | 9 + .../prepare_osx_iso/support/docker.png | Bin 0 -> 64405 bytes .../support/generate_shadowhash | 73 + .../support/minstallconfig.xml | 16 + .../prepare_osx_iso/support/pkg-postinstall | 90 + .../prepare_osx_iso/support/user.plist | 48 + .../mac/add-network-interface-detection.sh | 28 + .../etc/vm-templates/scripts/mac/autologin.sh | 9 + .../scripts/mac/disable-spotlight.sh | 3 + .../vm-templates/scripts/mac/screensaver.sh | 6 + tests/etc/vm-templates/scripts/mac/shrink.sh | 21 + .../vm-templates/scripts/mac/system-update.sh | 6 + tests/etc/vm-templates/scripts/mac/user.sh | 26 + tests/etc/vm-templates/scripts/mac/vmware.sh | 32 + .../scripts/mac/xcode-cli-tools.sh | 39 + .../scripts/support/set_kcpassword.py | 36 + .../vm-templates/scripts/win/chocolatey.bat | 1 + .../vm-templates/scripts/win/chocopacks.bat | 6 + .../etc/vm-templates/scripts/win/compact.bat | 32 + .../scripts/win/compile-dotnet-assemblies.bat | 15 + .../vm-templates/scripts/win/dis-updates.bat | 19 + .../vm-templates/scripts/win/dis-updates.ps1 | 30 + .../scripts/win/disable-auto-logon.bat | 1 + .../scripts/win/disable-tasks.bat | 2 + .../scripts/win/disable-winrm.ps1 | 8 + .../vm-templates/scripts/win/enable-rdp.bat | 2 + .../scripts/win/enable-remote-desktop.bat | 14 + .../vm-templates/scripts/win/enable-winrm.bat | 2 + .../vm-templates/scripts/win/enable-winrm.ps1 | 13 + .../vm-templates/scripts/win/fixnetwork.ps1 | 23 + .../scripts/win/hotfix-KB2552055.bat | 23 + .../scripts/win/hotfix-KB2842230.bat | 20 + .../vm-templates/scripts/win/installnet4.bat | 2 + .../scripts/win/microsoft-updates.bat | 12 + .../etc/vm-templates/scripts/win/openssh.ps1 | 88 + .../vm-templates/scripts/win/oracle-cert.cer | Bin 0 -> 1419 bytes .../scripts/win/pin-powershell.bat | 4 + tests/etc/vm-templates/scripts/win/rsync.bat | 19 + .../etc/vm-templates/scripts/win/rt-host.bat | 1 + .../scripts/win/set-powerplan.ps1 | 7 + .../scripts/win/set-winrm-automatic.bat | 2 + .../vm-templates/scripts/win/uac-enable.bat | 1 + .../etc/vm-templates/scripts/win/unattend.xml | 41 + .../scripts/win/vm-guest-tools.bat | 57 + .../scripts/win/wait-for-desktop-file.ps1 | 15 + .../vm-templates/scripts/win/win-updates.ps1 | 232 + tests/etc/vm-templates/upload.sh | 65 + tests/lib/lib.sh | 127 + tests/lib/python/hockeyapp/__init__.py | 0 tests/lib/python/hockeyapp/api.py | 80 + tests/lib/python/hockeyapp/local.py | 150 + tests/lib/python/pyVim/LICENSE.txt | 202 + tests/lib/python/pyVim/README.Docker | 4 + tests/lib/python/pyVim/__init__.py | 12 + tests/lib/python/pyVim/connect.py | 837 ++ tests/lib/python/pyVim/task.py | 311 + tests/lib/python/pyVmomi/Cache.py | 42 + tests/lib/python/pyVmomi/CoreTypes.py | 57 + tests/lib/python/pyVmomi/Differ.py | 229 + .../pyVmomi/DynamicTypeManagerHelper.py | 289 + tests/lib/python/pyVmomi/Iso8601.py | 359 + tests/lib/python/pyVmomi/LICENSE.txt | 202 + .../pyVmomi/ManagedMethodExecutorHelper.py | 118 + tests/lib/python/pyVmomi/PbmObjects.py | 107 + tests/lib/python/pyVmomi/QueryTypes.py | 65 + tests/lib/python/pyVmomi/README.Docker | 4 + tests/lib/python/pyVmomi/ServerObjects.py | 3157 ++++++++ tests/lib/python/pyVmomi/SmsObjects.py | 208 + tests/lib/python/pyVmomi/SoapAdapter.py | 1673 ++++ .../python/pyVmomi/StubAdapterAccessorImpl.py | 48 + tests/lib/python/pyVmomi/Version.py | 36 + tests/lib/python/pyVmomi/VmomiSupport.py | 1690 ++++ tests/lib/python/pyVmomi/__init__.py | 228 + tests/lib/python/pyVmomi/pyVmomiSettings.py | 17 + tests/lib/python/requests/LICENSE | 13 + tests/lib/python/requests/README.Docker | 4 + tests/lib/python/requests/__init__.py | 89 + tests/lib/python/requests/adapters.py | 497 ++ tests/lib/python/requests/api.py | 149 + tests/lib/python/requests/auth.py | 242 + tests/lib/python/requests/cacert.pem | 5616 +++++++++++++ tests/lib/python/requests/certs.py | 25 + tests/lib/python/requests/compat.py | 62 + tests/lib/python/requests/cookies.py | 493 ++ tests/lib/python/requests/exceptions.py | 118 + tests/lib/python/requests/hooks.py | 34 + tests/lib/python/requests/models.py | 875 +++ tests/lib/python/requests/packages/README.rst | 11 + .../lib/python/requests/packages/__init__.py | 36 + .../requests/packages/chardet/__init__.py | 32 + .../requests/packages/chardet/big5freq.py | 925 +++ .../requests/packages/chardet/big5prober.py | 42 + .../requests/packages/chardet/chardetect.py | 80 + .../packages/chardet/chardistribution.py | 231 + .../packages/chardet/charsetgroupprober.py | 106 + .../packages/chardet/charsetprober.py | 62 + .../packages/chardet/codingstatemachine.py | 61 + .../requests/packages/chardet/compat.py | 34 + .../requests/packages/chardet/constants.py | 39 + .../requests/packages/chardet/cp949prober.py | 44 + .../requests/packages/chardet/escprober.py | 86 + .../python/requests/packages/chardet/escsm.py | 242 + .../requests/packages/chardet/eucjpprober.py | 90 + .../requests/packages/chardet/euckrfreq.py | 596 ++ .../requests/packages/chardet/euckrprober.py | 42 + .../requests/packages/chardet/euctwfreq.py | 428 + .../requests/packages/chardet/euctwprober.py | 41 + .../requests/packages/chardet/gb2312freq.py | 472 ++ .../requests/packages/chardet/gb2312prober.py | 41 + .../requests/packages/chardet/hebrewprober.py | 283 + .../requests/packages/chardet/jisfreq.py | 569 ++ .../requests/packages/chardet/jpcntx.py | 227 + .../packages/chardet/langbulgarianmodel.py | 229 + .../packages/chardet/langcyrillicmodel.py | 329 + .../packages/chardet/langgreekmodel.py | 225 + .../packages/chardet/langhebrewmodel.py | 201 + .../packages/chardet/langhungarianmodel.py | 225 + .../packages/chardet/langthaimodel.py | 200 + .../requests/packages/chardet/latin1prober.py | 139 + .../packages/chardet/mbcharsetprober.py | 86 + .../packages/chardet/mbcsgroupprober.py | 54 + .../requests/packages/chardet/mbcssm.py | 572 ++ .../packages/chardet/sbcharsetprober.py | 120 + .../packages/chardet/sbcsgroupprober.py | 69 + .../requests/packages/chardet/sjisprober.py | 91 + .../packages/chardet/universaldetector.py | 170 + .../requests/packages/chardet/utf8prober.py | 76 + .../requests/packages/urllib3/__init__.py | 96 + .../requests/packages/urllib3/_collections.py | 324 + .../requests/packages/urllib3/connection.py | 330 + .../packages/urllib3/connectionpool.py | 849 ++ .../packages/urllib3/contrib/__init__.py | 0 .../packages/urllib3/contrib/appengine.py | 231 + .../packages/urllib3/contrib/ntlmpool.py | 115 + .../packages/urllib3/contrib/pyopenssl.py | 358 + .../packages/urllib3/contrib/socks.py | 172 + .../requests/packages/urllib3/exceptions.py | 209 + .../requests/packages/urllib3/fields.py | 178 + .../requests/packages/urllib3/filepost.py | 94 + .../packages/urllib3/packages/__init__.py | 5 + .../urllib3/packages/backports/__init__.py | 0 .../urllib3/packages/backports/makefile.py | 53 + .../packages/urllib3/packages/ordered_dict.py | 259 + .../requests/packages/urllib3/packages/six.py | 385 + .../packages/ssl_match_hostname/__init__.py | 13 + .../ssl_match_hostname/_implementation.py | 105 + .../requests/packages/urllib3/poolmanager.py | 284 + .../requests/packages/urllib3/request.py | 151 + .../requests/packages/urllib3/response.py | 526 ++ .../packages/urllib3/util/__init__.py | 46 + .../packages/urllib3/util/connection.py | 101 + .../requests/packages/urllib3/util/request.py | 72 + .../packages/urllib3/util/response.py | 74 + .../requests/packages/urllib3/util/retry.py | 294 + .../requests/packages/urllib3/util/ssl_.py | 320 + .../requests/packages/urllib3/util/timeout.py | 242 + .../requests/packages/urllib3/util/url.py | 217 + tests/lib/python/requests/sessions.py | 691 ++ tests/lib/python/requests/status_codes.py | 91 + tests/lib/python/requests/structures.py | 106 + tests/lib/python/requests/utils.py | 773 ++ tests/lib/python/rt/__init__.py | 0 tests/lib/python/rt/base.py | 325 + tests/lib/python/rt/colour.py | 24 + tests/lib/python/rt/host.py | 440 ++ tests/lib/python/rt/httpsvr.py | 120 + tests/lib/python/rt/lexec.py | 116 + tests/lib/python/rt/local.py | 145 + tests/lib/python/rt/log.py | 387 + tests/lib/python/rt/misc.py | 99 + tests/lib/python/rt/vm.py | 584 ++ tests/lib/python/rt/vmconfig.py | 40 + tests/lib/python/six/CHANGES | 270 + tests/lib/python/six/LICENSE | 18 + tests/lib/python/six/MANIFEST.in | 6 + tests/lib/python/six/PKG-INFO | 32 + tests/lib/python/six/README | 16 + tests/lib/python/six/README.Docker | 4 + tests/lib/python/six/documentation/Makefile | 130 + tests/lib/python/six/documentation/conf.py | 217 + tests/lib/python/six/documentation/index.rst | 841 ++ tests/lib/python/six/setup.cfg | 22 + tests/lib/python/six/setup.py | 32 + tests/lib/python/six/six.egg-info/PKG-INFO | 32 + tests/lib/python/six/six.egg-info/SOURCES.txt | 15 + .../six/six.egg-info/dependency_links.txt | 1 + .../lib/python/six/six.egg-info/top_level.txt | 1 + tests/lib/python/six/six.py | 868 ++ tests/lib/python/six/test_six.py | 872 ++ tests/lib/python/winrm/LICENSE | 19 + tests/lib/python/winrm/README.Docker | 4 + tests/lib/python/winrm/__init__.py | 117 + tests/lib/python/winrm/exceptions.py | 30 + tests/lib/python/winrm/protocol.py | 384 + tests/lib/python/winrm/transport.py | 191 + tests/lib/python/xmltodict/LICENSE | 7 + tests/lib/python/xmltodict/README.Docker | 4 + tests/lib/python/xmltodict/__init__.py | 437 ++ tests/lib/utils/.gitattributes | 1 + tests/lib/utils/rt-crexec | 88 + tests/lib/utils/rt-elevate.exe | 3 + tests/lib/utils/rt-filegen | 37 + tests/lib/utils/rt-filemd5 | 35 + tests/lib/utils/rt-filerandgen | 39 + tests/lib/utils/rt-urltest | 68 + tests/mac-autoinst.sh | 35 + tests/rt-host | 22 + tests/rt-local | 22 + tests/rt-sh | 76 + tests/rt-vm | 22 + 644 files changed, 67506 insertions(+), 82 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .github/ISSUE_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .gitignore create mode 100644 CHANGELOG create mode 100644 MAINTAINERS create mode 100644 Makefile create mode 100644 README.md create mode 100644 appveyor.yml create mode 100644 circle-linux.yml create mode 100644 circle.yml create mode 100644 docs/Dockerfile create mode 100644 docs/Makefile create mode 100644 docs/docker-for-mac/docker-toolbox.md create mode 100644 docs/docker-for-mac/examples.md create mode 100644 docs/docker-for-mac/faqs.md create mode 100644 docs/docker-for-mac/images/About.png create mode 100644 docs/docker-for-mac/images/changelog-placeholder.png create mode 100644 docs/docker-for-mac/images/chat.png create mode 100644 docs/docker-for-mac/images/console_logs.png create mode 100644 docs/docker-for-mac/images/console_logs_search.png create mode 100644 docs/docker-for-mac/images/diagnose-d4mac-issues-template.png create mode 100644 docs/docker-for-mac/images/diagnose-id-forums.png create mode 100644 docs/docker-for-mac/images/diagnose-issue.png create mode 100644 docs/docker-for-mac/images/diagnose.png create mode 100644 docs/docker-for-mac/images/diagnostic-forums-topic.png create mode 100644 docs/docker-for-mac/images/docker-app-drag-old.png create mode 100644 docs/docker-for-mac/images/docker-app-drag.png create mode 100644 docs/docker-for-mac/images/docker-app-in-apps-no-annotation.png create mode 100644 docs/docker-for-mac/images/docker-app-in-apps.png create mode 100644 docs/docker-for-mac/images/docker-app-log.png create mode 100644 docs/docker-for-mac/images/docker-app.png create mode 100644 docs/docker-for-mac/images/docker-for-mac-and-toolbox.png create mode 100644 docs/docker-for-mac/images/docker-for-mac-install.png create mode 100644 docs/docker-for-mac/images/download.png create mode 100644 docs/docker-for-mac/images/hello-world-nginx.png create mode 100644 docs/docker-for-mac/images/hello-world.png create mode 100644 docs/docker-for-mac/images/hockeyapp-docker.png create mode 100644 docs/docker-for-mac/images/log-files-finder.png create mode 100644 docs/docker-for-mac/images/logs.png create mode 100644 docs/docker-for-mac/images/mac-activity-monitor-docker-app.png create mode 100644 docs/docker-for-mac/images/mac-install-success-docker-ps.png create mode 100644 docs/docker-for-mac/images/mac-install-success-docker-wait.png create mode 100644 docs/docker-for-mac/images/menu.png create mode 100644 docs/docker-for-mac/images/privacy.png create mode 100644 docs/docker-for-mac/images/proxy-settings.png create mode 100644 docs/docker-for-mac/images/remove-app-instances.png create mode 100644 docs/docker-for-mac/images/settings-advanced.png create mode 100644 docs/docker-for-mac/images/settings-diagnose-id.png create mode 100644 docs/docker-for-mac/images/settings-diagnose.png create mode 100644 docs/docker-for-mac/images/settings-diagnostic-results-only.png create mode 100644 docs/docker-for-mac/images/settings-file-share-choose.png create mode 100644 docs/docker-for-mac/images/settings-file-share.png create mode 100644 docs/docker-for-mac/images/settings-uninstall.png create mode 100644 docs/docker-for-mac/images/settings.png create mode 100644 docs/docker-for-mac/images/startup-help.png create mode 100644 docs/docker-for-mac/images/toolbox-install.png create mode 100644 docs/docker-for-mac/images/whale-in-menu-bar.png create mode 100644 docs/docker-for-mac/images/whale-x.png create mode 100644 docs/docker-for-mac/images/whale.png create mode 100644 docs/docker-for-mac/index.md create mode 100644 docs/docker-for-mac/menu.md create mode 100644 docs/docker-for-mac/multi-arch.md create mode 100644 docs/docker-for-mac/networking.md create mode 100644 docs/docker-for-mac/opensource.md create mode 100644 docs/docker-for-mac/osxfs.md create mode 100644 docs/docker-for-mac/release-notes.md create mode 100644 docs/docker-for-mac/troubleshoot.md create mode 100644 docs/docker-for-windows/examples.md create mode 100644 docs/docker-for-windows/faqs.md create mode 100644 docs/docker-for-windows/images/Config-popup.png create mode 100755 docs/docker-for-windows/images/Docker-win-settings.png create mode 100644 docs/docker-for-windows/images/Start-Authorize.png create mode 100644 docs/docker-for-windows/images/Start-init.png create mode 100644 docs/docker-for-windows/images/about-docker-win.png create mode 100644 docs/docker-for-windows/images/chat.png create mode 100644 docs/docker-for-windows/images/config-popup-menu-win-switch-containers.png create mode 100644 docs/docker-for-windows/images/config-popup-menu-win.png create mode 100644 docs/docker-for-windows/images/desktop-whale-icon.png create mode 100644 docs/docker-for-windows/images/diagnose-d4win-issues-template.png create mode 100644 docs/docker-for-windows/images/diagnose-feedback-id-win.png create mode 100644 docs/docker-for-windows/images/diagnose-feedback-win.png create mode 100644 docs/docker-for-windows/images/docker-daemon.png create mode 100644 docs/docker-for-windows/images/docker-is-running.png create mode 100644 docs/docker-for-windows/images/download.png create mode 100644 docs/docker-for-windows/images/hyper-v-message.png create mode 100644 docs/docker-for-windows/images/import-docker-content.png create mode 100644 docs/docker-for-windows/images/installer-allow.png create mode 100644 docs/docker-for-windows/images/installer-finishes.png create mode 100644 docs/docker-for-windows/images/installer-in-downloads.png create mode 100644 docs/docker-for-windows/images/installer-license-ok.png create mode 100644 docs/docker-for-windows/images/installer-license-show.png create mode 100644 docs/docker-for-windows/images/installer-progress-bar.png create mode 100644 docs/docker-for-windows/images/proxies.png create mode 100644 docs/docker-for-windows/images/run-nginx.png create mode 100644 docs/docker-for-windows/images/settings-cpu-ram.png create mode 100644 docs/docker-for-windows/images/settings-docker-win.png create mode 100644 docs/docker-for-windows/images/settings-general.png create mode 100644 docs/docker-for-windows/images/settings-kernel.png create mode 100644 docs/docker-for-windows/images/settings-network.png create mode 100644 docs/docker-for-windows/images/settings-reset.png create mode 100644 docs/docker-for-windows/images/settings-shared-drives.png create mode 100644 docs/docker-for-windows/images/settings-toolbox-import.png create mode 100644 docs/docker-for-windows/images/submit-token.png create mode 100644 docs/docker-for-windows/images/whale-systray.png create mode 100644 docs/docker-for-windows/images/whale-x.png create mode 100644 docs/docker-for-windows/images/win-file-and-printer-sharing.png create mode 100644 docs/docker-for-windows/images/win-install-success-hello-world.png create mode 100644 docs/docker-for-windows/images/win-install-success-popup.png create mode 100644 docs/docker-for-windows/images/win-install-success.png create mode 100644 docs/docker-for-windows/index.md create mode 100644 docs/docker-for-windows/menu.md create mode 100644 docs/docker-for-windows/opensource.md create mode 100644 docs/docker-for-windows/release-notes.md create mode 100644 docs/docker-for-windows/troubleshoot.md create mode 100644 docs/images/chat.png create mode 100644 docs/images/download-mac.png create mode 100644 docs/images/download-win.png create mode 100644 docs/images/download.png create mode 100644 docs/images/whale-x.png create mode 100644 project/DOCS.md create mode 100644 project/ISSUE-TRIAGE.md create mode 100644 project/MAC-RELEASE.md create mode 100644 project/MAC-TESTING.md create mode 100644 project/RELEASE-CHECKLIST.md create mode 100644 project/RELEASE.md create mode 100644 project/ROADMAP.md create mode 100644 project/SUPPORT.md create mode 100644 project/WIN-RELEASE.md create mode 100644 project/WIN-TESTING.md create mode 100644 project/designs/TRIM.md create mode 100644 scripts/token/main.go create mode 100644 scripts/token/main_test.go create mode 100644 support/README.md create mode 100644 support/nurse/.gitignore create mode 100644 support/nurse/.merlin create mode 100644 support/nurse/Makefile create mode 100644 support/nurse/TODO.md create mode 100644 support/nurse/_tags create mode 100755 support/nurse/build.sh create mode 100644 support/nurse/opam create mode 100644 support/nurse/src/_tags create mode 100644 support/nurse/src/archive.ml create mode 100644 support/nurse/src/archive.mli create mode 100644 support/nurse/src/cache.ml create mode 100644 support/nurse/src/cache.mli create mode 100644 support/nurse/src/command.ml create mode 100644 support/nurse/src/command.mli create mode 100644 support/nurse/src/docker.ml create mode 100644 support/nurse/src/docker.mli create mode 100644 support/nurse/src/labels.ml create mode 100644 support/nurse/src/nurse.ml create mode 100644 support/nurse/src/nurse_clean.ml create mode 100644 support/nurse/src/problem.ml create mode 100644 support/nurse/src/problem.mli create mode 100644 support/s3/.dockerignore create mode 100644 support/s3/.gitignore create mode 100644 support/s3/Dockerfile.awscli create mode 100644 support/s3/Dockerfile.fetch create mode 100644 support/s3/Dockerfile.tohtml create mode 100644 support/s3/README.md create mode 100755 support/s3/fetch.sh create mode 100755 support/s3/formatter/process-all-users.sh create mode 100755 support/s3/formatter/process-one-upload.sh create mode 100755 support/s3/formatter/process-one-user.sh create mode 100644 support/s3/s3creds.env.in create mode 100755 support/s3/sync.sh create mode 100755 support/s3/tohtml.sh create mode 100644 tests/.gitignore create mode 100644 tests/LICENSE create mode 100644 tests/README.md create mode 100644 tests/cases/.gitattributes create mode 100644 tests/cases/.gitignore create mode 100755 tests/cases/000_osx/010_installer/005_check_for_sudo/test.sh create mode 100644 tests/cases/000_osx/010_installer/007_extract_dmg/test.sh create mode 100755 tests/cases/000_osx/010_installer/010_uninstall/test.sh create mode 100755 tests/cases/000_osx/010_installer/020_install/test.sh create mode 100755 tests/cases/000_osx/010_installer/030_repeat_uninstall_install/test.sh create mode 100644 tests/cases/000_osx/010_installer/040_check-binaries/test.sh create mode 100755 tests/cases/000_osx/010_installer/050_docker-diagnose/test.sh create mode 100755 tests/cases/000_osx/020_leaks/010_vmnetd/test.sh create mode 100755 tests/cases/000_osx/020_leaks/020_db/test.sh create mode 100755 tests/cases/000_osx/020_leaks/030_hyperkit/test.sh create mode 100755 tests/cases/000_osx/020_leaks/040_osxfs/test.sh create mode 100755 tests/cases/000_osx/group.sh create mode 100755 tests/cases/000_win/000_installer/000_check_uninstalled/test.sh create mode 100755 tests/cases/000_win/000_installer/005_install/test.sh create mode 100755 tests/cases/000_win/000_installer/010_uninstall_install/test.sh create mode 100755 tests/cases/000_win/000_installer/020_start/test.sh create mode 100755 tests/cases/000_win/000_installer/050_uninstall_install_running/test.sh create mode 100755 tests/cases/000_win/000_installer/group.sh create mode 100644 tests/cases/000_win/010_basic/000_migratemachine/disk.vmdk create mode 100644 tests/cases/000_win/010_basic/000_migratemachine/test.sh create mode 100644 tests/cases/000_win/010_basic/010_stopstart/test.sh create mode 100644 tests/cases/000_win/010_basic/020_resettodefault/test.sh create mode 100644 tests/cases/000_win/020_volumes/000_modifyshare/test.sh create mode 100644 tests/cases/000_win/020_volumes/010_passwords/.gitignore create mode 100644 tests/cases/000_win/020_volumes/010_passwords/newuser.ps1 create mode 100644 tests/cases/000_win/020_volumes/010_passwords/test.sh create mode 100644 tests/cases/000_win/030_network/000_dns/test.sh create mode 100755 tests/cases/000_win/030_network/010_subnet/test.sh create mode 100755 tests/cases/000_win/040_advanced/000_cpu_memory/test.sh create mode 100644 tests/cases/000_win/040_advanced/010_daemon_json/test.sh create mode 100755 tests/cases/000_win/050_win_containers/000_info/test.sh create mode 100755 tests/cases/000_win/050_win_containers/010_hello/test.sh create mode 100755 tests/cases/000_win/group.sh create mode 100755 tests/cases/010_backend/000_basic/001_ps/test.sh create mode 100755 tests/cases/010_backend/000_basic/002_version/test.sh create mode 100644 tests/cases/010_backend/000_basic/005_experimental/test.sh create mode 100755 tests/cases/010_backend/000_basic/010_hello/test.sh create mode 100644 tests/cases/010_backend/000_basic/015_inspect/test.sh create mode 100644 tests/cases/010_backend/000_basic/020_port/Dockerfile create mode 100644 tests/cases/010_backend/000_basic/020_port/default.conf create mode 100644 tests/cases/010_backend/000_basic/020_port/test.sh create mode 100644 tests/cases/010_backend/000_basic/030_build_interrupt/Dockerfile create mode 100755 tests/cases/010_backend/000_basic/030_build_interrupt/test.sh create mode 100644 tests/cases/010_backend/000_basic/050_context_fixed/Dockerfile create mode 100755 tests/cases/010_backend/000_basic/050_context_fixed/test.sh create mode 100644 tests/cases/010_backend/000_basic/051_context_random/Dockerfile create mode 100755 tests/cases/010_backend/000_basic/051_context_random/test.sh create mode 100755 tests/cases/010_backend/000_basic/100_basic_stdio/test.sh create mode 100644 tests/cases/010_backend/000_basic/200_stress_simple/commands.txt create mode 100755 tests/cases/010_backend/000_basic/200_stress_simple/test.sh create mode 100644 tests/cases/010_backend/010_volumes/000_mount/sep create mode 100755 tests/cases/010_backend/010_volumes/000_mount/test.sh create mode 100755 tests/cases/010_backend/010_volumes/001_touch_file/test.sh create mode 100644 tests/cases/010_backend/010_volumes/002_dentry/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/002_dentry/dentry_test.sh create mode 100644 tests/cases/010_backend/010_volumes/002_dentry/test.sh create mode 100755 tests/cases/010_backend/010_volumes/005_dd/test.sh create mode 100644 tests/cases/010_backend/010_volumes/010_create_child/Dockerfile create mode 100644 tests/cases/010_backend/010_volumes/010_create_child/create_child.c create mode 100755 tests/cases/010_backend/010_volumes/010_create_child/test.sh create mode 100755 tests/cases/010_backend/010_volumes/010_fresh_rename_child/test.sh create mode 100755 tests/cases/010_backend/010_volumes/010_mode0/test.sh create mode 100644 tests/cases/010_backend/010_volumes/010_rename_subdir/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/010_rename_subdir/rename_subdir.py create mode 100755 tests/cases/010_backend/010_volumes/010_rename_subdir/test.sh create mode 100644 tests/cases/010_backend/010_volumes/010_rmdir_nonempty/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/010_rmdir_nonempty/rmdir_nonempty.sh create mode 100755 tests/cases/010_backend/010_volumes/010_rmdir_nonempty/test.sh create mode 100644 tests/cases/010_backend/010_volumes/010_trans_rename_unlink/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/010_trans_rename_unlink/test.sh create mode 100644 tests/cases/010_backend/010_volumes/010_trans_rename_unlink/trans_rename_unlink.c create mode 100644 tests/cases/010_backend/010_volumes/015_open_flags/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/015_open_flags/open_flags.py create mode 100755 tests/cases/010_backend/010_volumes/015_open_flags/test.sh create mode 100644 tests/cases/010_backend/010_volumes/020_hardlink/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/020_hardlink/hardlink.sh create mode 100755 tests/cases/010_backend/010_volumes/020_hardlink/test.sh create mode 100644 tests/cases/010_backend/010_volumes/020_symlink/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/020_symlink/symlink.sh create mode 100755 tests/cases/010_backend/010_volumes/020_symlink/test.sh create mode 100755 tests/cases/010_backend/010_volumes/020_symlink/verify.sh create mode 100755 tests/cases/010_backend/010_volumes/025_npm_install/test.sh create mode 100644 tests/cases/010_backend/010_volumes/030_fifo_copy/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/030_fifo_copy/fifo_copy.sh create mode 100755 tests/cases/010_backend/010_volumes/030_fifo_copy/test.sh create mode 100644 tests/cases/010_backend/010_volumes/035_socket_chmod/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/035_socket_chmod/socket_chmod.sh create mode 100755 tests/cases/010_backend/010_volumes/035_socket_chmod/test.sh create mode 100644 tests/cases/010_backend/010_volumes/035_socket_copy/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/035_socket_copy/socket_copy.sh create mode 100755 tests/cases/010_backend/010_volumes/035_socket_copy/test.sh create mode 100644 tests/cases/010_backend/010_volumes/040_sendfile_ones_10M/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/040_sendfile_ones_10M/sendfile_ones_10M.py create mode 100755 tests/cases/010_backend/010_volumes/040_sendfile_ones_10M/test.sh create mode 100644 tests/cases/010_backend/010_volumes/040_sendfile_ones_64K/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/040_sendfile_ones_64K/sendfile_ones_64K.py create mode 100755 tests/cases/010_backend/010_volumes/040_sendfile_ones_64K/test.sh create mode 100644 tests/cases/010_backend/010_volumes/050_chown/Dockerfile create mode 100644 tests/cases/010_backend/010_volumes/050_chown/chown_test.c create mode 100755 tests/cases/010_backend/010_volumes/050_chown/chown_test.sh create mode 100644 tests/cases/010_backend/010_volumes/050_chown/test.sh create mode 100755 tests/cases/010_backend/010_volumes/050_utimes/test.sh create mode 100755 tests/cases/010_backend/010_volumes/060_perl_i/test.sh create mode 100755 tests/cases/010_backend/010_volumes/070_statfs/test.sh create mode 100755 tests/cases/010_backend/010_volumes/080_opendir_recreate/test.sh create mode 100644 tests/cases/010_backend/010_volumes/100_inotify/Dockerfile create mode 100755 tests/cases/010_backend/010_volumes/100_inotify/events.sh create mode 100755 tests/cases/010_backend/010_volumes/100_inotify/inotify.sh create mode 100755 tests/cases/010_backend/010_volumes/100_inotify/run_inotify.sh create mode 100755 tests/cases/010_backend/010_volumes/100_inotify/test.sh create mode 100644 tests/cases/010_backend/010_volumes/110_inotify_interference/Dockerfile create mode 100644 tests/cases/010_backend/010_volumes/110_inotify_interference/interfere.c create mode 100755 tests/cases/010_backend/010_volumes/110_inotify_interference/test.sh create mode 100755 tests/cases/010_backend/010_volumes/120_cycle_with_events/test.sh create mode 100644 tests/cases/010_backend/020_network/010_bind_port_eaddrinuse/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_bind_port_eaddrinuse/test.sh create mode 100644 tests/cases/010_backend/020_network/010_bind_port_eaddrnotavail/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_bind_port_eaddrnotavail/test.sh create mode 100644 tests/cases/010_backend/020_network/010_bind_port_twice/Dockerfile create mode 100644 tests/cases/010_backend/020_network/010_bind_port_twice/default.conf create mode 100755 tests/cases/010_backend/020_network/010_bind_port_twice/test.sh create mode 100644 tests/cases/010_backend/020_network/010_bind_priv_port_twice/Dockerfile create mode 100644 tests/cases/010_backend/020_network/010_bind_priv_port_twice/default.conf create mode 100755 tests/cases/010_backend/020_network/010_bind_priv_port_twice/test.sh create mode 100644 tests/cases/010_backend/020_network/010_both_ports_different/Dockerfile create mode 100644 tests/cases/010_backend/020_network/010_both_ports_different/default.conf create mode 100755 tests/cases/010_backend/020_network/010_both_ports_different/test.sh create mode 100644 tests/cases/010_backend/020_network/010_local_dns_lookup_tcp/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_local_dns_lookup_tcp/run.sh create mode 100755 tests/cases/010_backend/020_network/010_local_dns_lookup_tcp/test.sh create mode 100644 tests/cases/010_backend/020_network/010_local_dns_lookup_udp/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_local_dns_lookup_udp/run.sh create mode 100755 tests/cases/010_backend/020_network/010_local_dns_lookup_udp/test.sh create mode 100644 tests/cases/010_backend/020_network/010_ntp_from_default_gateway/Makefile create mode 100644 tests/cases/010_backend/020_network/010_remote_dns_lookup_tcp/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_remote_dns_lookup_tcp/run.sh create mode 100755 tests/cases/010_backend/020_network/010_remote_dns_lookup_tcp/test.sh create mode 100644 tests/cases/010_backend/020_network/010_remote_dns_lookup_udp/Dockerfile create mode 100755 tests/cases/010_backend/020_network/010_remote_dns_lookup_udp/run.sh create mode 100755 tests/cases/010_backend/020_network/010_remote_dns_lookup_udp/test.sh create mode 100644 tests/cases/010_backend/020_network/020_proxy/Dockerfile create mode 100755 tests/cases/010_backend/020_network/020_proxy/test.sh create mode 100644 tests/cases/010_backend/020_network/030_tcp_xfer_to_fixed/Dockerfile create mode 100755 tests/cases/010_backend/020_network/030_tcp_xfer_to_fixed/test.sh create mode 100755 tests/cases/010_backend/020_network/030_tcp_xfer_to_fixed/xfer.py create mode 100644 tests/cases/010_backend/020_network/031_tcp_xfer_to_random/Dockerfile create mode 100755 tests/cases/010_backend/020_network/031_tcp_xfer_to_random/rt-filemd5 create mode 100755 tests/cases/010_backend/020_network/031_tcp_xfer_to_random/test.sh create mode 100755 tests/cases/010_backend/020_network/031_tcp_xfer_to_random/xfer.py create mode 100644 tests/cases/010_backend/020_network/032_udp_datagram_sizes/Dockerfile create mode 100755 tests/cases/010_backend/020_network/032_udp_datagram_sizes/receiver.py create mode 100755 tests/cases/010_backend/020_network/032_udp_datagram_sizes/sender.py create mode 100755 tests/cases/010_backend/020_network/032_udp_datagram_sizes/test.sh create mode 100644 tests/cases/010_backend/020_network/040_http_post/Dockerfile create mode 100755 tests/cases/010_backend/020_network/040_http_post/http_post.py create mode 100755 tests/cases/010_backend/020_network/040_http_post/test.sh create mode 100755 tests/cases/010_backend/020_network/050_http_conn_to/http_conn.py create mode 100755 tests/cases/010_backend/020_network/050_http_conn_to/test.sh create mode 100755 tests/cases/010_backend/020_network/050_http_open_conn_to/http_open_conn.py create mode 100755 tests/cases/010_backend/020_network/050_http_open_conn_to/test.sh create mode 100644 tests/cases/010_backend/020_network/051_http_conn_from/Dockerfile create mode 100755 tests/cases/010_backend/020_network/051_http_conn_from/http_conn.py create mode 100755 tests/cases/010_backend/020_network/051_http_conn_from/test.sh create mode 100644 tests/cases/010_backend/020_network/100_nmap_host/Dockerfile create mode 100755 tests/cases/010_backend/020_network/100_nmap_host/run.sh create mode 100755 tests/cases/010_backend/020_network/100_nmap_host/test.sh create mode 100644 tests/cases/010_backend/020_network/TODO create mode 100644 tests/cases/010_backend/050_compose/001_hello_world/docker-compose.yml create mode 100755 tests/cases/010_backend/050_compose/001_hello_world/test.sh create mode 100755 tests/cases/010_backend/050_compose/100_compose_integration/test.sh create mode 100755 tests/cases/010_backend/070_swarmkit/001_nginx/test.sh create mode 100644 tests/cases/010_backend/070_swarmkit/group.sh create mode 100755 tests/cases/010_backend/080_release/test.sh create mode 100755 tests/cases/010_backend/081_diagnostics/test.sh create mode 100644 tests/cases/010_backend/100_apps/.gitignore create mode 100644 tests/cases/010_backend/100_apps/README.md create mode 100644 tests/cases/010_backend/100_apps/django_example/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/django_example/db.txt create mode 100644 tests/cases/010_backend/100_apps/django_example/docker-compose.yml create mode 100644 tests/cases/010_backend/100_apps/django_example/requirements.txt create mode 100755 tests/cases/010_backend/100_apps/django_example/test.sh create mode 100644 tests/cases/010_backend/100_apps/dotnet_restore/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/dotnet_restore/project.json create mode 100644 tests/cases/010_backend/100_apps/dotnet_restore/test.sh create mode 100644 tests/cases/010_backend/100_apps/elastic_search/docker-compose.yml create mode 100755 tests/cases/010_backend/100_apps/elastic_search/test.sh create mode 100644 tests/cases/010_backend/100_apps/rails_example/.gitignore create mode 100644 tests/cases/010_backend/100_apps/rails_example/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/rails_example/Gemfile.new create mode 100644 tests/cases/010_backend/100_apps/rails_example/database.yml create mode 100644 tests/cases/010_backend/100_apps/rails_example/docker-compose.yml create mode 100755 tests/cases/010_backend/100_apps/rails_example/test.sh create mode 100644 tests/cases/010_backend/100_apps/sqlite_shared_db/Dockerfile create mode 100755 tests/cases/010_backend/100_apps/sqlite_shared_db/test.sh create mode 100755 tests/cases/010_backend/100_apps/ucp/test.sh create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/LICENSE create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/MAINTAINERS create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/README.md create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/docker-compose.yml create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/package.json create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/server.js create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/app.js create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/birthday.html create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/config.json create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/index.html create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/socket.io.js create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/result-app/views/stylesheets/style.css create mode 100755 tests/cases/010_backend/100_apps/voting-app-3rd/test.sh create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/app.py create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/requirements.txt create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/static/stylesheets/style.css create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/templates/index.html create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/voting-app/utils/__init__.py create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/worker/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/worker/pom.xml create mode 100644 tests/cases/010_backend/100_apps/voting-app-3rd/worker/src/main/java/worker/Worker.java create mode 100644 tests/cases/010_backend/100_apps/wordpress_example/Dockerfile create mode 100644 tests/cases/010_backend/100_apps/wordpress_example/docker-compose.yml create mode 100755 tests/cases/010_backend/100_apps/wordpress_example/test.sh create mode 100644 tests/cases/010_backend/100_apps/wordpress_example/wp-config.php create mode 100755 tests/cases/010_backend/group.sh create mode 100644 tests/cases/100_benchmarks/000_samba/.gitignore create mode 100644 tests/cases/100_benchmarks/000_samba/00.BuildPerfTest.ps1 create mode 100644 tests/cases/100_benchmarks/000_samba/01.setuptestenv.ps1 create mode 100644 tests/cases/100_benchmarks/000_samba/PerfTest/Dockerfile create mode 100644 tests/cases/100_benchmarks/000_samba/PerfTest/Main.cpp create mode 100644 tests/cases/100_benchmarks/000_samba/test.sh create mode 100644 tests/cases/100_benchmarks/010_db2/Dockerfile create mode 100755 tests/cases/100_benchmarks/010_db2/test.sh create mode 100644 tests/cases/100_benchmarks/TODO create mode 100644 tests/cases/100_benchmarks/dummy/test.sh create mode 100644 tests/cases/100_benchmarks/group.sh create mode 100644 tests/cases/README.md create mode 100644 tests/cases/_lib/lib.sh create mode 100644 tests/cases/_lib/sh/lib_osx.sh create mode 100644 tests/cases/_lib/sh/lib_win.sh create mode 100755 tests/cases/group.sh create mode 100644 tests/etc/ssh/id_rsa create mode 100644 tests/etc/ssh/id_rsa.pub create mode 100755 tests/etc/templates/group.sh create mode 100755 tests/etc/templates/test.sh create mode 100644 tests/etc/vm-templates/.gitignore create mode 100644 tests/etc/vm-templates/Makefile create mode 100644 tests/etc/vm-templates/README.md create mode 100644 tests/etc/vm-templates/answer_files/10-edu/Autounattend.xml create mode 100644 tests/etc/vm-templates/answer_files/10-ent/Autounattend.xml create mode 100644 tests/etc/vm-templates/answer_files/10-pro/Autounattend.xml create mode 100755 tests/etc/vm-templates/floppy/PinTo10.exe create mode 100644 tests/etc/vm-templates/floppy/ReadMe.txt create mode 100755 tests/etc/vm-templates/floppy/WindowsPowershell.lnk create mode 100644 tests/etc/vm-templates/packer/osx-10.10.json create mode 100644 tests/etc/vm-templates/packer/osx-10.11.json create mode 100644 tests/etc/vm-templates/packer/osx-10.12.json create mode 100644 tests/etc/vm-templates/packer/osx.json create mode 100644 tests/etc/vm-templates/packer/win-10-ent-10586.json create mode 100644 tests/etc/vm-templates/packer/win-10-pro-10586.json create mode 100644 tests/etc/vm-templates/packer/win-10-pro-14393.json create mode 100644 tests/etc/vm-templates/packer/win-10.json create mode 100755 tests/etc/vm-templates/prepare_osx_iso/prepare_iso.sh create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/OSInstall.collection create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/docker.png create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/generate_shadowhash create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/minstallconfig.xml create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/pkg-postinstall create mode 100755 tests/etc/vm-templates/prepare_osx_iso/support/user.plist create mode 100755 tests/etc/vm-templates/scripts/mac/add-network-interface-detection.sh create mode 100755 tests/etc/vm-templates/scripts/mac/autologin.sh create mode 100755 tests/etc/vm-templates/scripts/mac/disable-spotlight.sh create mode 100755 tests/etc/vm-templates/scripts/mac/screensaver.sh create mode 100755 tests/etc/vm-templates/scripts/mac/shrink.sh create mode 100755 tests/etc/vm-templates/scripts/mac/system-update.sh create mode 100755 tests/etc/vm-templates/scripts/mac/user.sh create mode 100755 tests/etc/vm-templates/scripts/mac/vmware.sh create mode 100755 tests/etc/vm-templates/scripts/mac/xcode-cli-tools.sh create mode 100755 tests/etc/vm-templates/scripts/support/set_kcpassword.py create mode 100644 tests/etc/vm-templates/scripts/win/chocolatey.bat create mode 100644 tests/etc/vm-templates/scripts/win/chocopacks.bat create mode 100644 tests/etc/vm-templates/scripts/win/compact.bat create mode 100644 tests/etc/vm-templates/scripts/win/compile-dotnet-assemblies.bat create mode 100644 tests/etc/vm-templates/scripts/win/dis-updates.bat create mode 100755 tests/etc/vm-templates/scripts/win/dis-updates.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/disable-auto-logon.bat create mode 100644 tests/etc/vm-templates/scripts/win/disable-tasks.bat create mode 100644 tests/etc/vm-templates/scripts/win/disable-winrm.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/enable-rdp.bat create mode 100644 tests/etc/vm-templates/scripts/win/enable-remote-desktop.bat create mode 100644 tests/etc/vm-templates/scripts/win/enable-winrm.bat create mode 100644 tests/etc/vm-templates/scripts/win/enable-winrm.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/fixnetwork.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/hotfix-KB2552055.bat create mode 100644 tests/etc/vm-templates/scripts/win/hotfix-KB2842230.bat create mode 100644 tests/etc/vm-templates/scripts/win/installnet4.bat create mode 100644 tests/etc/vm-templates/scripts/win/microsoft-updates.bat create mode 100644 tests/etc/vm-templates/scripts/win/openssh.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/oracle-cert.cer create mode 100644 tests/etc/vm-templates/scripts/win/pin-powershell.bat create mode 100644 tests/etc/vm-templates/scripts/win/rsync.bat create mode 100644 tests/etc/vm-templates/scripts/win/rt-host.bat create mode 100644 tests/etc/vm-templates/scripts/win/set-powerplan.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/set-winrm-automatic.bat create mode 100644 tests/etc/vm-templates/scripts/win/uac-enable.bat create mode 100644 tests/etc/vm-templates/scripts/win/unattend.xml create mode 100644 tests/etc/vm-templates/scripts/win/vm-guest-tools.bat create mode 100644 tests/etc/vm-templates/scripts/win/wait-for-desktop-file.ps1 create mode 100644 tests/etc/vm-templates/scripts/win/win-updates.ps1 create mode 100755 tests/etc/vm-templates/upload.sh create mode 100644 tests/lib/lib.sh create mode 100644 tests/lib/python/hockeyapp/__init__.py create mode 100644 tests/lib/python/hockeyapp/api.py create mode 100644 tests/lib/python/hockeyapp/local.py create mode 100644 tests/lib/python/pyVim/LICENSE.txt create mode 100644 tests/lib/python/pyVim/README.Docker create mode 100644 tests/lib/python/pyVim/__init__.py create mode 100644 tests/lib/python/pyVim/connect.py create mode 100644 tests/lib/python/pyVim/task.py create mode 100644 tests/lib/python/pyVmomi/Cache.py create mode 100644 tests/lib/python/pyVmomi/CoreTypes.py create mode 100644 tests/lib/python/pyVmomi/Differ.py create mode 100644 tests/lib/python/pyVmomi/DynamicTypeManagerHelper.py create mode 100644 tests/lib/python/pyVmomi/Iso8601.py create mode 100644 tests/lib/python/pyVmomi/LICENSE.txt create mode 100644 tests/lib/python/pyVmomi/ManagedMethodExecutorHelper.py create mode 100644 tests/lib/python/pyVmomi/PbmObjects.py create mode 100644 tests/lib/python/pyVmomi/QueryTypes.py create mode 100644 tests/lib/python/pyVmomi/README.Docker create mode 100644 tests/lib/python/pyVmomi/ServerObjects.py create mode 100644 tests/lib/python/pyVmomi/SmsObjects.py create mode 100644 tests/lib/python/pyVmomi/SoapAdapter.py create mode 100644 tests/lib/python/pyVmomi/StubAdapterAccessorImpl.py create mode 100644 tests/lib/python/pyVmomi/Version.py create mode 100644 tests/lib/python/pyVmomi/VmomiSupport.py create mode 100644 tests/lib/python/pyVmomi/__init__.py create mode 100644 tests/lib/python/pyVmomi/pyVmomiSettings.py create mode 100644 tests/lib/python/requests/LICENSE create mode 100644 tests/lib/python/requests/README.Docker create mode 100644 tests/lib/python/requests/__init__.py create mode 100644 tests/lib/python/requests/adapters.py create mode 100644 tests/lib/python/requests/api.py create mode 100644 tests/lib/python/requests/auth.py create mode 100644 tests/lib/python/requests/cacert.pem create mode 100644 tests/lib/python/requests/certs.py create mode 100644 tests/lib/python/requests/compat.py create mode 100644 tests/lib/python/requests/cookies.py create mode 100644 tests/lib/python/requests/exceptions.py create mode 100644 tests/lib/python/requests/hooks.py create mode 100644 tests/lib/python/requests/models.py create mode 100644 tests/lib/python/requests/packages/README.rst create mode 100644 tests/lib/python/requests/packages/__init__.py create mode 100644 tests/lib/python/requests/packages/chardet/__init__.py create mode 100644 tests/lib/python/requests/packages/chardet/big5freq.py create mode 100644 tests/lib/python/requests/packages/chardet/big5prober.py create mode 100755 tests/lib/python/requests/packages/chardet/chardetect.py create mode 100644 tests/lib/python/requests/packages/chardet/chardistribution.py create mode 100644 tests/lib/python/requests/packages/chardet/charsetgroupprober.py create mode 100644 tests/lib/python/requests/packages/chardet/charsetprober.py create mode 100644 tests/lib/python/requests/packages/chardet/codingstatemachine.py create mode 100644 tests/lib/python/requests/packages/chardet/compat.py create mode 100644 tests/lib/python/requests/packages/chardet/constants.py create mode 100644 tests/lib/python/requests/packages/chardet/cp949prober.py create mode 100644 tests/lib/python/requests/packages/chardet/escprober.py create mode 100644 tests/lib/python/requests/packages/chardet/escsm.py create mode 100644 tests/lib/python/requests/packages/chardet/eucjpprober.py create mode 100644 tests/lib/python/requests/packages/chardet/euckrfreq.py create mode 100644 tests/lib/python/requests/packages/chardet/euckrprober.py create mode 100644 tests/lib/python/requests/packages/chardet/euctwfreq.py create mode 100644 tests/lib/python/requests/packages/chardet/euctwprober.py create mode 100644 tests/lib/python/requests/packages/chardet/gb2312freq.py create mode 100644 tests/lib/python/requests/packages/chardet/gb2312prober.py create mode 100644 tests/lib/python/requests/packages/chardet/hebrewprober.py create mode 100644 tests/lib/python/requests/packages/chardet/jisfreq.py create mode 100644 tests/lib/python/requests/packages/chardet/jpcntx.py create mode 100644 tests/lib/python/requests/packages/chardet/langbulgarianmodel.py create mode 100644 tests/lib/python/requests/packages/chardet/langcyrillicmodel.py create mode 100644 tests/lib/python/requests/packages/chardet/langgreekmodel.py create mode 100644 tests/lib/python/requests/packages/chardet/langhebrewmodel.py create mode 100644 tests/lib/python/requests/packages/chardet/langhungarianmodel.py create mode 100644 tests/lib/python/requests/packages/chardet/langthaimodel.py create mode 100644 tests/lib/python/requests/packages/chardet/latin1prober.py create mode 100644 tests/lib/python/requests/packages/chardet/mbcharsetprober.py create mode 100644 tests/lib/python/requests/packages/chardet/mbcsgroupprober.py create mode 100644 tests/lib/python/requests/packages/chardet/mbcssm.py create mode 100644 tests/lib/python/requests/packages/chardet/sbcharsetprober.py create mode 100644 tests/lib/python/requests/packages/chardet/sbcsgroupprober.py create mode 100644 tests/lib/python/requests/packages/chardet/sjisprober.py create mode 100644 tests/lib/python/requests/packages/chardet/universaldetector.py create mode 100644 tests/lib/python/requests/packages/chardet/utf8prober.py create mode 100644 tests/lib/python/requests/packages/urllib3/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/_collections.py create mode 100644 tests/lib/python/requests/packages/urllib3/connection.py create mode 100644 tests/lib/python/requests/packages/urllib3/connectionpool.py create mode 100644 tests/lib/python/requests/packages/urllib3/contrib/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/contrib/appengine.py create mode 100644 tests/lib/python/requests/packages/urllib3/contrib/ntlmpool.py create mode 100644 tests/lib/python/requests/packages/urllib3/contrib/pyopenssl.py create mode 100644 tests/lib/python/requests/packages/urllib3/contrib/socks.py create mode 100644 tests/lib/python/requests/packages/urllib3/exceptions.py create mode 100644 tests/lib/python/requests/packages/urllib3/fields.py create mode 100644 tests/lib/python/requests/packages/urllib3/filepost.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/backports/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/backports/makefile.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/ordered_dict.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/six.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py create mode 100644 tests/lib/python/requests/packages/urllib3/poolmanager.py create mode 100644 tests/lib/python/requests/packages/urllib3/request.py create mode 100644 tests/lib/python/requests/packages/urllib3/response.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/__init__.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/connection.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/request.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/response.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/retry.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/ssl_.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/timeout.py create mode 100644 tests/lib/python/requests/packages/urllib3/util/url.py create mode 100644 tests/lib/python/requests/sessions.py create mode 100644 tests/lib/python/requests/status_codes.py create mode 100644 tests/lib/python/requests/structures.py create mode 100644 tests/lib/python/requests/utils.py create mode 100644 tests/lib/python/rt/__init__.py create mode 100644 tests/lib/python/rt/base.py create mode 100644 tests/lib/python/rt/colour.py create mode 100644 tests/lib/python/rt/host.py create mode 100644 tests/lib/python/rt/httpsvr.py create mode 100644 tests/lib/python/rt/lexec.py create mode 100644 tests/lib/python/rt/local.py create mode 100644 tests/lib/python/rt/log.py create mode 100644 tests/lib/python/rt/misc.py create mode 100644 tests/lib/python/rt/vm.py create mode 100644 tests/lib/python/rt/vmconfig.py create mode 100644 tests/lib/python/six/CHANGES create mode 100644 tests/lib/python/six/LICENSE create mode 100644 tests/lib/python/six/MANIFEST.in create mode 100644 tests/lib/python/six/PKG-INFO create mode 100644 tests/lib/python/six/README create mode 100644 tests/lib/python/six/README.Docker create mode 100644 tests/lib/python/six/documentation/Makefile create mode 100644 tests/lib/python/six/documentation/conf.py create mode 100644 tests/lib/python/six/documentation/index.rst create mode 100644 tests/lib/python/six/setup.cfg create mode 100644 tests/lib/python/six/setup.py create mode 100644 tests/lib/python/six/six.egg-info/PKG-INFO create mode 100644 tests/lib/python/six/six.egg-info/SOURCES.txt create mode 100644 tests/lib/python/six/six.egg-info/dependency_links.txt create mode 100644 tests/lib/python/six/six.egg-info/top_level.txt create mode 100644 tests/lib/python/six/six.py create mode 100644 tests/lib/python/six/test_six.py create mode 100644 tests/lib/python/winrm/LICENSE create mode 100644 tests/lib/python/winrm/README.Docker create mode 100644 tests/lib/python/winrm/__init__.py create mode 100644 tests/lib/python/winrm/exceptions.py create mode 100644 tests/lib/python/winrm/protocol.py create mode 100644 tests/lib/python/winrm/transport.py create mode 100644 tests/lib/python/xmltodict/LICENSE create mode 100644 tests/lib/python/xmltodict/README.Docker create mode 100755 tests/lib/python/xmltodict/__init__.py create mode 100644 tests/lib/utils/.gitattributes create mode 100755 tests/lib/utils/rt-crexec create mode 100755 tests/lib/utils/rt-elevate.exe create mode 100755 tests/lib/utils/rt-filegen create mode 100755 tests/lib/utils/rt-filemd5 create mode 100755 tests/lib/utils/rt-filerandgen create mode 100755 tests/lib/utils/rt-urltest create mode 100755 tests/mac-autoinst.sh create mode 100755 tests/rt-host create mode 100755 tests/rt-local create mode 100755 tests/rt-sh create mode 100755 tests/rt-vm diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 2125666142..0000000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 53e518f780..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,51 +0,0 @@ - - -**Output of `docker version`:** - -``` -(paste your output here) -``` - - -**Output of `docker info`:** - -``` -(paste your output here) -``` - -**Additional environment details (AWS, VirtualBox, physical, etc.):** - - - -**Steps to reproduce the issue:** -1. -2. -3. - - -**Describe the results you received:** - - -**Describe the results you expected:** - - -**Additional information you deem important (e.g. issue happens only occasionally):** diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 426981828b..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,30 +0,0 @@ - - -**- What I did** - -**- How I did it** - -**- How to verify it** - -**- Description for the changelog** - - - -**- A picture of a cute animal (not mandatory but encouraged)** - diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..4baf5383a9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,62 @@ +OSS-LICENSES +.DS_Store +shell/shell +shell/shell-history +shell/out.txt +shell/shell-config.json +shell/shell-env.json +shell9pAPI/shell9pAPI +shell9pAPI/sftp/sftp +shell/sftpKeys +shellAgent/shellAgent +shellAgent/hostKey.pem +shell/key.pem +shell/key.pub +agentSDK/node/node_modules/* +!agentSDK/node/node_modules/dockersdk +agentSDK/lib/agentlib.dylib +agentSDK/node/key.pem +agentSDK/node/keyC.pem +agentSDK/node/keyNode.pem +_tests +all-packages.txt + +# ignore compiled binaries +v1/agent/agent +v1/agent/com.docker.agent.exe +v1/cmd/proxy/proxy.exe + +# ignore generated SSH keys +v1/clitool/key.pem +v1/agent/hostKey.pem + +# ignore files generated by cli testing +v1/agent/application_storage +v1/bin +v1/cmd/agent/agent + +v1/db/irmin/_build +v1/db/irmin9p/irmin9p +v1/vendor/github.com/mortdeus/go9p/srv/examples/ufs/ufs + +# ignore compiled boot2docker, since we will rebuild it +v1/boot2docker/boot2docker-data.img.tar +v1/boot2docker/vmlinuz64 +v1/boot2docker/initrd.img +v1/devtool_sdk/libsrpc/libsrpc +v1/devtool_sdk/libsrpc/libsrpc.dylib +v1/devtool_sdk/libsrpc/libsrpc.h + +# ignore temporary files from editors +*.swp +*~ +*.sdf +*.VC.opendb + +_cache + +# PLEASE DON'T PUT SUBPROJECT IGNORE PATTERNS HERE. +# PUT THEM IN THE SUBPROJECT'S .gitignore FILE. +# THIS MAKES MAINTENANCE EASIER. THANK YOU. +v1/mac/dependencies +v1/mac/bin/Windows/Dependencies/HyperVInstaller.ps1 diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000000..d231c24b45 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,1130 @@ +### 1.12.1-beta27 "Beta27" (unreleased) + +* Upgrades + - Docker 1.12.2-rc1 + - Docker Machine 0.8.2 + - Docker compose 1.8.1 + - Kernel vsock driver v7 + - Kernel 4.4.21 + - aufs 20160912 + +* Bug fixes and minor changes + - Fix an issue where some windows did not claim focus correctly (#5221,#5314) + - Add UI when switching channel to prevent user losing containers and settings (#5253) + - Check disk capacity before toolbox import (#5165) + - Import certificates in etc/ssl/certs/ca-certificates.crt (#5239) + - DNS: reduce the number of UDP sockets consumed on the host + - VPNkit: improve the connection-limiting code to avoid running out of sockets on the host + - UDP: handle diagrams bigger than 2035, up to the configured macOS kernel limit + - UDP: make the forwarding more robust; drop packets and continue rather than stopping + - disk: make the "flush" behaviour configurable for database-like workloads. This works around a performance regression in 1.12.1. + +### 1.12.1-beta26 "Beta26" + +* New + - Improved support for macOS 10.12 Sierra + +* Upgrades + - Linux kernel 4.4.20 + - aufs 20160905 + +* Bug fixes and minor changes + - Fix communications glitch when UI talks to com.docker.vmnetd (#5115) + Fixes https://github.com/docker/for-mac/issues/90 + - UI fix for macOs 10.12 (#5152) + - Windows open on top of full screen app are available in all spaces (#5136) + - Reporting a bug, while not previously logged into github now works. (#5110) + - When a diagnostic upload fails, the error is properly reported (#5116) + - docker-diagnose: display and record the time the diagnosis was captured (#5075) + - Allow ports to be bound on host addresses other than 0.0.0.0 and 127.0.0.1 (moby/#482) + Fixes issue reported in https://github.com/docker/for-mac/issues/68 + - Don't compute the container folder in com.docker.vmnetd (#5066) + Fixes https://github.com/docker/for-mac/issues/47 + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2016-09-07 1.12.1-beta25 "Beta25" + +* Upgrades + - Experimental support for OSX 10.12 Sierra (beta) + +* Bug fixes and minor changes + - VPNKit supports search domains (#4974) + - Entries from /etc/hosts should now resolve from within containers + - osxfs: fix thread leak (#4933) + +* Known issues + - Several problems have been reported on macOS 10.12 Sierra and are being + investigated. This includes failure to launch the app and being unable + to upgrade to a new version. + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2016-08-31 1.12.1-beta24.1 "Beta24.1" + +* Hotfixes + - Fix regression in UI when changing memory/cpu settings + +### 2016-08-30 1.12.1-beta24 "Beta24" + +* Upgrades + - Docker 1.12.1 + - Docker machine 0.8.1 + - Linux kernel 4.4.19 + - aufs 20160822 + +* Bug fixes and minor changes + - osxfs: fixed a malfunction of new directories that have the same + name as an old directory that is still open (#4532) + - osxfs: rename events now trigger DELETE and/or MODIFY inotify + events (saving with TextEdit works now) (#4498) + - slirp: support up to 8 external DNS servers + - slirp: reduce the number of sockets used by UDP NAT, reduce the + probability that NAT rules will time out earlier than expected (#4826) + - Warn the user if BlueStacks is installed (potential kernel panic) (#4661) + +* Known issues + - Several problems have been reported on macOS 10.12 Sierra and are being + investigated. This includes failure to launch the app and being unable + to upgrade to a new version. + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2016-08-16 1.12.1-rc1-beta23 "Beta23" + +* Upgrades + - Docker 1.12.1-rc1 + - Linux kernel 4.4.17 + - aufs 20160808 + +* Bug fixes and minor changes + - Automatic update interval changed from 1 hour to 24 hours (#4822) + - Moby: use default sysfs settings, transparent huge pages disabled (#4815) + - Moby: cgroup mount to support systemd in containers (#4789) + - osxfs: fix an issue that caused inotify failure and crashes (#4799) + - osxfs: fix a directory fd leak (#4533) + - Zsh completions (#4785) + +* Known issues + - Several problems have been reported on macOS 10.12 Sierra and are being + investigated. This includes failure to launch the app and being unable + to upgrade to a new version. + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2015-08-11 1.12.0-beta22 "Beta22" + +* New + +* Upgrades + - Linux kernel to 4.4.16 + +* Bug fixes and minor changes + - Increase Moby fs.file-max to 524288 + - Increase Moby fs.file-max to 524288 + - Use Mac System Configuration database to detect DNS (#4649) + - HyperKit updated with dtrace support and lock fixes + - Fix Moby Diagnostics and Update Kernel (#4636) + - UI Fixes (#4538) + - osxfs: fix socket chowns (#4743) + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2016-08-03 1.12.0-beta21.1 "Beta21.1" + +* Hotfixes + - osxfs: fixed an issue causing access to children of renamed + directories to fail (symptoms: npm failures, apt-get failures) + (docker/for-mac#53 #74 #76) + - osxfs: fixed an issue causing some ATTRIB and CREATE inotify + events to fail delivery and other inotify events to stop (#4650 #4652) + - osxfs: fixed an issue causing all inotify events to stop when an + ancestor directory of a mounted directory was mounted (#4635) + - osxfs: fixed an issue causing volumes mounted under other mounts + to spontaneously unmount (docker/docker#24503) + +### 2016-07-28 1.12.0-beta21 "Beta21" + +* New + - Docker for Mac is now available from 2 channels - stable and beta. + New features and bug fixes will go out first in auto-updates to users + in the beta channel. Updates to the stable channel are much less + frequent and happen in sync with major and minor releases of the Docker + engine. Only features that are well-tested and ready for production are + added to the stable channel releases. You can download Docker for Mac + stable at https://download.docker.com/mac/stable/Docker.dmg + +* Upgrades + - docker 1.12.0 with experimental features + - docker machine 0.8.0 + - docker compose 1.8.0 + +* Bug fixes and minor changes + - Check for updates, auto-update and diagnose can be run by non-admin users (#4441) + - osxfs: fixed an issue causing occasional incorrect short reads (#3876) + - osxfs: fixed an issue causing occasional EIO errors (#3876) + - osxfs: fixed an issue causing inotify creation events to fail (#3876) + - osxfs: increased the fs.inotify.max_user_watches limit in Moby to 524288 + - The UI shows documentation link for sharing volumes (#4482) + - Improved error when running with outdated Virtualbox version (#4450) + - Added link to sources for qemu-img (#4503) + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart Docker.app (#1224) + - There are a number of issues with the performance of + directories bind-mounted with `osxfs`. In particular, writes of + small blocks and traversals of large directories are currently + slow. Additionally, containers that perform large numbers of + directory operations, such as repeated scans of large directory + trees, may suffer from poor performance. More information is + available in the Known Issues section of the documentation at + https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues + + - Under some unhandled error conditions, inotify event delivery can + fail and become permanently disabled. + The workaround is to restart Docker.app (#2181) + +### 2016-07-19 1.12.0-rc4-beta20 "Beta20" + +* New + +* Upgrades + +* Bug fixes and minor changes + - Fix docker.sock permission issues (#3919) + - Don't check for update when the settings panel opens (#4431) + - Remove obsolete DNS workaround (#4432) + - Use the secondary DNS server in more circumstances (#4429) + - Limit the number of concurrent port forwards to avoid running out of resources (#4429) + - Store the database as a "bare" git repo to avoid corruption problems (#4236) + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart Docker.app (#1224) + +### 2016-07-14 1.12.0-rc4-beta19 "Beta19" + +* New + - Add privacy tab in settings (#4190) + - Allow the definition of HTTP proxy overrides in the UI (#3517, #4303) + +* Upgrades + - Docker 1.12.0 RC4 + - Docker Compose 1.8.0 RC2 + - Docker Machine 0.8.0 RC2 + - Linux kernel 4.4.15 + +* Bug fixes and minor changes + - filesystem sharing permissions can only be configured in the UI (no more `/Mac` in moby) (#4312) + - com.docker.osx.xhyve.hyperkit: increase max number of fds to 10240 (#4232) + - Improve Moby syslog facilities (#4261) + - Improve file-sharing tab (#4252) + - com.docker.slirp: include the DNS TCP fallback fix, required when UDP responses are truncated (docker/vpnkit#72) + - docker build/events/logs/stats... won't leak when iterrupted with Ctrl-C (#3628) + +### 2016-07-07 1.12.0-rc3-beta18.1 "Beta-18.1" + +NOTE: Docker 1.12.0 RC3 release introduces a backward incompatible change from RC2, +See https://github.com/docker/docker/issues/24343#issuecomment-230623542 for more details. + +Fix for the above can be found at: https://docs.docker.com/docker-for-mac/troubleshoot/#/recreate-or-update-your-containers-after-beta-18-upgrade + +* Hotfix + - Fix issue resulting in error "Hijack is incompatible with use of CloseNotifier", reverts previous fix for "Ctrl-C" during build. + +* New + - New host/container file sharing UI (#4193, #4191) + - /Mac bind mount prefix is deprecated and will be removed soon + +* Upgrades + - Docker 1.12.0 RC3 (#4199, #4177) + +* Bug fixes and minor changes + - VPNKit: Improved scalability as number of network connections increases (#4173) + - The docker API proxy was failing to deal with some 1.12 features (e.g. health check) + +* Known issues + - See https://docs.docker.com/docker-for-mac/troubleshoot/ + +### 2016-07-06 1.12.0-rc3-beta18 "Beta-18" + +* New + - New host/container file sharing UI (#4193, #4191) + - /Mac bind mount prefix is deprecated and will be removed soon + +* Upgrades + - Docker 1.12.0 RC3 (#4199, #4177) + +* Bug fixes and minor changes + - VPNKit: Improved scalability as number of network connections increases (#4173) + - Interrupting a `docker build` with Ctrl-C will actually stop the build + - The docker API proxy was failing to deal with some 1.12 features (e.g. health check) + +* Known issues + - See https://docs.docker.com/docker-for-mac/troubleshoot/ + +### 2016-06-29 1.12.0-rc2-beta17 "Beta-17" + +* Upgrades + - Linux kernel 4.4.14, aufs 20160627 (#4133) + +* Bug fixes and minor changes + - Documentation moved to https://docs.docker.com/docker-for-mac/ + - Allow non-admin users to launch the app for the first time (using admin creds) (#4060) + - Prompt non-admin users for admin password when needed in Settings (#4046) + - Fixed download links, documentation links (#4059, #4013) + - Fixed "failure: No error" message in diagnostic panel (#4010) + - Improved diagnostics for networking and logs for the service port openers (#4116) + +* Known issues + - See https://docs.docker.com/docker-for-mac/troubleshoot/ + +### 2016-06-17 1.12.0-rc2-beta16 "Beta-16" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + +* Upgrades + - Docker 1.12.0 RC2 + - docker-compose 1.8.0 RC1 + - docker-machine 0.8.0 RC1 + - notary 0.3 + - Alpine 3.4 + +* Bug fixes and minor changes + - VPNKit: fix a regressed error message when a port is in use (#3904) + - Fix UI crashing with 'NSInternalInconsistencyException' / fd leak (#3883) + - HyperKit API: Improved error reporting (#3888) + - osxfs: fix sporadic EBADF due to fd access/release races (#3683) + +* Known issues + - See https://beta.docker.com/docs/mac/troubleshoot/#known-issues + +### 2016-06-10 1.11.2-beta15 "Beta-15" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - Registry mirror and insecure registries can now be configure from Settings + - VM can now be restarted from Settings + - sysctl.conf can be edited from Settings + +* Upgrades + - Docker 1.11.2 + - Linux 4.4.12, aufs 20160530 + +* Bug fixes and minor changes + - Number of concurrent TCP/UDP connections increased in VPNKit + - Hyperkit: vsock stability improvements + - Fixed crash when admin user group does not exit + +* Known issues + - See https://beta.docker.com/docs/mac/troubleshoot/#known-issues + +### 2016-06-06 1.11.1-beta14.1 "Beta-14" + +* Hotfix + - Updated Linux kernel to avoid falsely triggering an alarm in a common antivirus scanner + +### 2016-06-06 1.11.1-beta14 "Beta-14" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - New menu item "Diagnose & Feedback" can now be used to run diagnostics and upload logs to Docker + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart Docker.app (#1224) + +* Bug fixes and minor changes + - osxfs: support statfs (#3536) + - settings: updated toolbar icons (#3476) + - Fall back to secondary DNS server if primary fails (#3458) + - Link to documentation from menu + +### 2016-05-28 1.11.1-beta13.1 "Beta-13.1" + +* Hotfixes + – osxfs: Fix sporadic EBADF errors and End_of_file crashes due to a race corrupting node table invariants (#3454) + – osxfs: Fix a crash after accessing a sibling of a file moved to another directory caused by a node table invariant violation (#3474) + – Proxy settings were applied on network change, causing docker daemon to restart too often + – Log file sizes doubled on docker daemon restart + +### 2016-05-25 1.11.1-beta13 "Beta-13" + +* New + - osxfs: enabled 10ms dcache for 3x speedup on a go list ./... test against docker/machine. Workloads + heavy in file system path resolution (common among dynamic languages and build systems) will have + those resolutions performed in amortized constant time rather than time linear in the depth of the + path so speedups of 2-10x will be common + - Support multiple users on the same machine, non-admin users can use the app as long as vmnetd has been installed. Currently + only one user can be logged in at the same time. + - Basic support for using system HTTP/HTTPS proxy in docker daemon + - Docs have been updated! See https://beta.docker.com/docs/ + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + +* Bug fixes and minor changes + - osxfs: setting atime and mtime of nodes is now supported (#2174) + - osxfs: fixed major regression in Beta 12 with ENOENT, ENOTEMPY, and other spurious errors after + a directory rename. This manifested as `npm install` failure and other directory traversal issues. (#3229) + - osxfs: fixed temporary file ENOENT errors (#3220, #1794) + - osxfs: fixed in-place editing file truncation error (e.g. perl -i) (#3219) + - improve time synchronisation after sleep (#3240) + +### 2016-05-17 1.11.1-beta12 "Beta-12" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + +* Bug fixes and minor changes + - UI improvements (#3138, #3107) + - osxfs: fixed mkdir returns EBUSY but directory is created (#3131) + - osxfs: FUSE 7.23 (#3130) + +### 2016-05-10 1.11.1-beta11 "Beta-11" + +* New + - osxfs now persists ownership changes in an extended attribute, see + https://beta.docker.com/docs/mac/osxfs/ (#823) + +* Upgrades + - docker-compose 1.7.1 + - Kernel 4.4.9 + +* Bug fixes and minor changes + - desktop notifications after successful update (#2947) + - no "update available" popup during install process (#2973) + - fix repeated bind of privileged ports (#3015) + - osxfs: fix the block count reported by stat (#2978) + - Moby: Fix vsock half closed issue (#2961) + - Moby: Add NFS support (#2961) + - Moby: Hostname is now Moby, not Docker (#2961) + - Moby: Fixes to disk formatting scripts (#2961) + +### 2016-05-03 1.11.1-beta10 "Beta-10" + +* New + - Token validation is now done over an actual SSL tunnel (HTTPS). + (should fix issues with antivirus software) + - Docs have been updated! See https://beta.docker.com/docs/ + +* Upgrades + - docker 1.11.1 (#2858, 2808) + +* Bug fixes and minor changes + - UCP now starts again (#2854) + - include debugging symbols in xhyve (#2837) + - vsock stability improvements (#2831) + - addressing glitches in Settings panel + - fix issues impacting the "whale menu" + - fix uninstall process + - xhyve vcpu state machine improvements, may improve suspend/resume (#2798) + +### 2016-04-28 1.11.0-beta9 "Beta-9" + +* New + - `localhost` is now used for port forwarding by default. + `docker.local` will no longer work as of Beta 9. See documentation + for details. + - Docs have been updated! See https://beta.docker.com/docs/ + - New settings window - memory and vCPUs now adjustable (#2634) + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + +* Bug fixes and minor changes + - Fix loopback device naming (#2734) + - Improve docker socket download and osxfs sequential write by ~20% (#2653) + - osxfs: improve sequential read throughput by up to 20% (#2654) + - osxfs: improve readdir performance by up to 6x (#2695) + - osxfs: log all fatal exceptions (#2732) + - more reliable DNS forwarding over UDP and TCP (#2721, #2786) + - UDP ports can be proxied over vsock (#2711) + - fix EADDRINUSE (manifesting as errno 526) when ports are re-used (#2818) + - send ICMP when asked to not fragment and we can't guarantee it (#2780) + - fix parsing of UDP datagrams with IP socket options (#2780) + - drop abnormally large ethernet frames (#2793) + - Improve xhyve logging (#2719) + - Record VM start and stop events (#2698) + +### 2016-04-19 1.11.0-beta8 "Beta-8" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - Networking mode switched to VPN compatible by default (#2091), + and as part of this change the overall experience has been improved: + - `docker.local` now works in VPN compatibility mode (#2603) + - exposing ports on the Mac is available in both networking modes (#2621) + - port forwarding of privileged ports now works in both networking modes (#2557) + - traffic to external DNS servers is no longer dropped in VPN mode (#2625) + - `osxfs` now uses `AF_VSOCK` for transport (#2531, #2584) giving ~1.8x + speedup for large sequential read/write workloads but increasing + latency by ~1.3x. `osxfs` performance engineering work continues. + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + +* Bug fixes and minor changes + - Apple System Log now used for most logs instead of direct filesystem logging (#2543, #2587) + - docker_proxy fixes (#2539) + - Merge Xhyve upstream patches (#2551) + - Improve error reporting in `nat` network mode (#2606) + - `osxfs` `transfused` client now logs over `AF_VSOCK` (#2602) + - Fixed a com.docker.osx.xhyve.linux supervisor deadlock if processes exit + during a controlled shutdown (#2602) + - Fixed VPN mode malformed DNS query bug preventing some resolutions (#2607) + +### 2016-04-14 1.11.0-beta7 "Beta-7" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - Use `AF_VSOCK` for Docker socket transport (#2469, #2438, #2410) + +* Upgrades + - docker 1.11.0 + - docker-machine 0.7.0 + - docker-compose 1.7.0 + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - If VPN mode is enabled and then disabled and then re-enabled again, + `docker ps` will block for 90s (#2337) + +* Bug fixes and minor changes + - Logging improvements (#2455, #2427, #2409, #2380, #2379) + - Improve process management (#2454, #2451, #2456) + +### 2016-04-05 1.11.0-beta6 "Beta-6" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - Add uninstall option in user interface (#2198) + +* Upgrades + - docker 1.11.0-rc3 (#2255) + - docker-compose 1.7.0-rc2 (#2301) + - docker-machine 0.7.0-rc1 + - Linux 4.4.6 + +* Known issues + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - If VPN mode is enabled and then disabled and then re-enabled again, + `docker ps` will block for 90s (#2337) + +* Bug fixes and minor changes + - Fix osxfs multiple same directory bind mounts stopping inotify (#2258) + - Fix osxfs setattr on mode 0 files (sed failures) (#2171) + - Fix osxfs blocking all operations during `readdir` (#2141) + - Fix osxfs mishandled errors which crashed the file system and VM (#2166) + - Remove outdated lofs/9p support (#2256) + - Add more debugging info to logs uploaded by `pinata diagnose` (#2175) + - Improve diagnostics from within VM (#2183) + - Virtualbox version check now also works without VBoxManage in path (#2152) + - VPN mode now uses same IP range as NAT mode (#2151) + - Tokens are now verified on port 443 (#2117) + - Remove outdated uninstall scripts (#2198) + - Increase default ulimits (#2253) + - Port forwarding with `-p` and `-P` should work in VPN mode (#2190) + - Fix a memory leak in com.docker.db (#2289) + - Fix a race on startup between docker and networking which can + lead to Docker.app not starting on reboot (#1808) + +### 2016-03-29 1.10.3-beta5 "Beta-5" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + +* Known issues + - There is a race on startup between docker and networking which can + lead to Docker.app not starting on reboot. The workaround is to + restart the application manually. (#1808). + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - In VPN mode, the `-p` option needs to be explicitly of the form + `-p :`. `-p ` and `-P` will not + work yet. (#1520) + +* Bug fixes and minor changes + - Update DMG background image (#2098) + - Show correct VM memory in Settings (#2067) + - Feedback opens forum, not email (#2066) + - Fix RAM amount error message (#2026) + - Fix wording of CPU error dialog (#1940) + - Remove status from settings (#2058) + - Check for incompatible versions of Virtualbox (#2056) + + +### 2016-03.22 1.10.3-beta4 "Beta-4" + +* New features + - File-sharing: support inotify events so that filesystem events on the + Mac will trigger filesystem activations inside Linux containers (#822) + - Install docker-machine in `/usr/local` (#1703) + - Add an animated popover window to help first-time users get started (#1848) + - Add `pinata doctor` to diagnose common setup issues such as stray environment variables (#1809) + - New Beta icon (#1780) + +* Known issues + - There is a race on startup between docker and networking which can + lead to Docker.app not starting on reboot. The workaround is to + restart the application manually. (#1808). + - Docker.app sometimes uses 200% CPU after OS X wakes up from sleep mode. + The issue is being investigated. The workaround is to restart + Docker.app (#1224) + - In VPN mode, the `-p` option needs to be explicitly of the form + `-p :`. `-p ` and `-P` will not + work yet. (#1520) + +* Bug fixes and minor changes + - Hostnet: fix Moby DNS resolver failures by proxying the + Recursion Available flag (#1698) + - `docker ps` shows IP address rather than `docker.local` (#1841) + - Re-enable support for OS X 10.10 (#1748) + - Fix "Notification Center"-related crash on startup (#1167) + - Fix watchdog crash on startup (#1558) + - Ensure binaries are built for 10.10 rather than 10.11 (#1748) + - `pinata diagnose`: work around bugsnag upload limits (#1845) + and add more diagnostic tests (#1852) + - `pinata diagnose`: remove false positives if old launchd plists + are still present (#1662) + +### 2016-03-15 1.10.3-beta3 "Beta-3" + +* New + - Docs have been updated! See https://beta.docker.com/docs/ + - 6x speedup for sequential write throughput with osxfs (#1607) + - Rename `bridged` mode to `nat` mode (#1621) + - Docker runs in debug mode by default for new installs (#1546) + - Add `pinata diagnose` command to help diagnose problems and upload logs (#1664) + +* Upgrades + - Docker 1.10.3 (#1586) + +* Bug fixes and minor changes + - Add more verbose logging on errors in `nat` mode (#1620, #1522) + - Fix HockeyApp crash reporting (#1587) + - Fix get/set VPN mode in settings (#1583) + - Fix osxfs chmod on sockets (#1570) + - Fix osxfs EINVAL from `open` using O_NOFOLLOW (#1511) + - Show correct forwarding details in `docker ps/inspect/port` in `nat` mode (#1564) + - Auto update automatically checks for new versions again (#1536) + - Hypervisor stability fixes, resynced with upstream repository (#1531, #1514) + - Fatal GUI errors now correctly terminate the app again (#1524,#1528) + - New lines ignored in token entry field (#1498) + - Fix proxy panics on EOF when decoding JSON (#1489) + - Clarify open source licenses (#1604, #1677, #1636) + - Fix long delay/crash when switching from `hostnet` to `nat` mode (#1675) + - Moby logs included in diagnose upload (#1664) + - Feedback mail has app-version in subject field (#1653) + - App version included in logs on startup (#1645) + +### 2016-03-08 1.10.2-beta2 "Beta-2" + +* New features + - Docs have been updated! See https://beta.docker.com/docs/ + - GUI: Add VPN mode / slirp to settings (#1444) + - GUI: Add disable Time Machine backups of VM disk image to settings (#1429) + - CLI: `pinata` configuration tool for experimental settings (#1411, #1370) + - FS: Add guest-guest FIFO and socket file support (#1314) + +* Upgrades + - notary 0.2 (#1447) + +* Bug fixes + - FS: Fix data corruption bug during cp (use of sendfile/splice) (#1384) + - GUI: Fix About box to contain correct version string (#1289) + - Slirp/VPN mode: Stability fixes and tests (#1394, #1428, #1434) + - Slirp/VPN mode: Fix DNS issues when changing networks (#1455) + - Moby: Clean up Docker startup code (#1398) + - Fix various linking and dependency problems (#1426, #1378) + - Logging improvements (#1437) + +### 2016-03-01 1.10.2-b1 "Beta-1" + +* GUI + - Add dialog to explain why we need admin rights (#1284, #1207) + - Remove shutdown/quit window (#1287) + - Improve machine migration (#1255) + - Add "Help" option in menu to open docs webpage (#1237) + - Add license agreement (#1209) + - Add MixPanel support (#1206) + +* CLI + - Add `docker-configure` tool to modify experimental settings (#1304, #1293, #1286, #1280, #1266, #1229, #1222, #1311) + - Add `docker-diagnose` and `docker-configure` to path (#1254) + +* Crash reports + - Add HockeyApp crash reporting (#1260, #1251) + +* Task manager + - Improve signal handling (#1221, #1201, #1246) + +* Logging + - Use ISO timestamps with microsecond precision (#1285) + - Clean up logging format (#1285) + +* Packaging + - Create `/usr/local` if it doesn't exist (#1307) + - `docker-uninstall` improvements (#1236) + - Remove `docker-select` as it's no longer used (#1295) + +* Hypervisor + - Add pid file (#1220) + - Networking reliability improvements (#1181) + +* Bug fixes + - Slirp: fix port forwarding issue (#1218) + - Slirp: stability fixes (#1194) + - Moby: fix setting hostname (#1283) + - Fix permissions on `/usr/local` symlinks (#1261) + +### 2016-02-23 1.10.2-12 "Alpha-12" + +* Enrollment System + - A token is now required to launch the application + - How to get the token? + - Sign up on http://beta.docker.com + - Wait for validation email (or ask for it in #docker-mac channel on Slack) + - Open the application, token will be requested + - Internet access is required only once + +* API proxy + - Bug fixes for `docker inspect` (#1051) + - Stop rewriting volume paths: `/Users`, `/private`, `/tmp` and `/Volumes` + are now directly mapped into the OSX filesystem. (#1016) + - Stability fixes (#1097) + +* Docker + - Upgrade to docker 1.10.2 (#1103) + +* CLI + - bundle bash completion from docker, machine and compose (#1036) + - bundle docker-machine (and its bash completion) (#1027) + +* Moby + - Speed-up exit time: shutdown is now really fast. (#945) + - Kernel update to 4.1.18 (#1096) + +* Hypervisor (com.docker.driver.amd64-linux) + - Stability fix and more logging for new `freeze` sleep mode (#1026) + +* Packaging + - Move database to `~/Library/Containers/com.docker.docker/Data/database` + - Move disk image to `~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux` + - Move Moby logs to `~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log` + +### 2016-02-16 1.10.1-11 "Alpha-11" + +* API proxy + - Rewrite `docker inspect` to rewrite volumes and ports + - Handle start requests and adjust mounts for `docker-compose` (#918, #924) + - Add disabled, experimental flag to expose `/var/run/docker.sock` (#953) + +* Networking + - In `slirp` mode, if no IP is specified bind to 0.0.0.0 (#939) + - `docker ps` will show where the port is really bound, i.e. on + `docker.local` (#939) + - New experimental key `native/port-forwarding=false`: if true this will + perform port forwarding from IP addresses on the host, like regular + Linux. (#939) + +* UI + - Logs: Remove the log dashboard and link to the log folder instead + - Buttons: Fix the "Acknowledgements" button (#984) + +* Hypervisor (com.docker.driver.amd64-linux) + - Freeze VM while OSX sleeps (workaround for Apple ACPI bug, issue #147) (#967) + - Prevent spinning if the tty is disconnected (#869, #996) + +* Moby + - Fix fd leaks inside 9p daemon (#954) + - Initial user namespace support (#933) + - New kernel, switch to C transfused (#966) + +* Upgrades + - docker-engine 1.10.1 (#946) + - notary 1.10-5 (#964) + - link to latest Kitematic which works out-of-the-box with Docker.app (#957) + +* Windows + - Initial code integration. Now the OSX and Windows apps are built from + the same source tree. + +### 2016-02-09 1.10.0-10 "Alpha-10" + +* File system sharing + - osxfs read corruption fix (#896) + - osxfs sequential read performance 50% faster (now 75MiB/s) + - lofs sequential read performance 13x faster (now 60MiB/s) + - lofs sequential write performance 11x faster (now 50MiB/s) + +* Docker socket + - Socket upload into a container 70% faster (now 17MiB/s) + - Socket download from a container 30% faster (now 21MiB/s) + +* Upgrades + - docker-engine 1.10.0 (#888) + - docker-compose 1.6.0 (#890) + - docker-machine 0.6.0 (#894) + +* Networking + - experimental slirp mode (#903, #902, #901, #887) + - the internal IP address can be set in the database (keys slirp/docker and slirp/host) + - the internal IP now defaults to 169.254.0.1,2 + - when port forwarding, binding to 0.0.0.0 works as on Linux (see documentation for limitations) + +* Bugfixes + - Improve proxy stability (#910, #898) + +### 2016-02-02 1.10.0-9 "Alpha-9" + +NOTE: If you have manually changed the database keys they will be reset to default values after upgrading to this alpha. + +* File system sharing + - osxfs now enabled by default for all users + - osxfs sequential read throughput is now 10x higher (50MiB/s) (#833, #818, #817) + - osxfs stability improvements (#816, #787, #785) + +* Migration + - experimental support for migrating containers from Virtualbox on first launch (#842, #725) + +* Upgrades + - docker-engine 1.10.0-rc2 + - docker-compose 1.6.0rc2 + +* Networking + - New experimental mode ("slirp") added as a workaround for VPN/firewall issues. This mode is not enabled by default (#843, #838, #836, #815, #809) + +* Proxy + - Stability and logging improvements (#814, #781) + +* User interface + - Logs now displayed under "Logs..." + - Dashboard links to Kitematic download + +* Moby + - Reduced boot time (#moby/18) + +* Database + - Add initial support for schema upgrades (#846) + + +### 2016-01-26 1.10.0-8 "Alpha-8" + +* Dashboard + - Include output from docker.log (#728) + +* Hypervisor (com.docker.driver.amd64-linux) + - Shutdown VM while OSX sleeps (workaround for Apple ACPI bug, issue #147) (#711, #694) + +* Configuration + - Linux: Database file to configure hostname, restarts VM on commit + - Docker: Database file to configure Docker daemon, restarts docker on commit + +* Upgrades + - docker-compose 1.6.0rc1 + +* File system sharing (experimental) + - `osxfs`, an experimental shared file system has been integrated (#707) + which fixes UID/GID mapping (#123) and atomic rename (#668) and has + twice the sequential write throughput. It is disabled by default + but can be enabled by writing "osxfs" to the `filesystem` database + key. Please see the documentation for further details. + +### 2016-01-19 1.10.0-7 "Alpha-7" + +* Docker + - upgrade to 1.10.0-rc1 (#650) + - logs available at ~/Library/Group Containers/group.com.docker/ + com.docker.driver.amd64-linux/docker.log + +* Installer + - symlinks in /usr/local/bin are automatically created on first launch (#674) + +* Menubar + - add a simple dashboard which currently displays logs (#679) + +* Packaging + - Include even more of the open-source component LICENSE text (in + previous alphas we missed a few packages) + - Future automatic upgrades will only prompt for admin password if + the vmnetd protocol has changed, not on every version (#645) + - New and updated graphic assets (#652) + +* Hypervisor (com.docker.driver.amd64-linux) + - bundle an experimental qemu x86_64 binary (#453) + +### 2016-01-12 1.9.1-6 "Alpha-6" + +* Packaging + - Distributed as a .dmg, with cute whale picture! + - Auto update re-enabled + +* Moby + - Add support for running containers for other architectures (arm, arm64, ppc64le, mips64, mips64le) (#545, #557, #559) + - Kernel 4.1.15 and aufs fixes (#589) + +* Networking (com.docker.vmnetd) + - Improve performance from host to container (~350 mbit/sec vs ~1.2 gbit/sec) (#566) + - Add support for rx batching to reduce packet overhead under high load (#566) + +* Menubar (Docker.app) + - Improve process management and logging (#570, #543, #568) + +* Hypervisor (com.docker.driver.amd64-linux) + - Add support for switching between hypervisors (xhyve, qemu) by writing to the db (#562) + - Proxy: handle old-style protocol upgrades to fix compose and terminal issues (#569) + + +### 2016-01-05 1.9.1-5 "Alpha-5" + +Note: This version requires a manual uninstall of earlier alpha versions. See documentation for details. + +* Main Window (former Kitematic) + - main Window removed from this alpha, waiting for new mockups and decision about JS (+ smooth transition from Kitematic) versus Swift implementation (#477) + +* Docker Terminal + - "Open Terminal" removed. See documentation for CLI tool installation instructions. (#513) + +* Settings + - login autostart checkbox (ON by default) (#477) + +* Moby + - faster boot time + - upgrade to Alpine 3.3 final + - diagnostics tool + - installer for docker-x + +* Hypervisor + - support more than 3GiB of RAM (`git commit` new value to ~/Library/Application Support/Docker/database/com.docker.driver.amd64-linux/memory) (#473, #474) + - bundle `qcow-tool` for manual creation of larger `Docker.qcow2` files (#501) + - enable ACPI support (#525) + +* Installer + - launchd socket activation is removed; services (including hypervisor and containers) run while the whale menu is running. (#477) + - the app is not automatically copied in /Applications anymore (#477) + - the app can run from any location (#477) + - uninstall dragging application's icon to the trash (may not work for vmnetd) (#477) + +* Packaging + - OSS Licenses of software running on the Host in Docker.app/Contents/Resources/OSS-LICENSES (#495, #491, #483) + + +### 2015-12-21 1.9.1-4 "Alpha-4" + +* moby + - use AUFS instead of OverlayFS + +* network: + - vmnetd: improve performance. disabling verbose logging improve perfs + from ~2MB/s to ~30-40MB/s (#443) + +* in-app support + - docker-diagnose: add capability to upload to bugsnag, upload sysctl and + logs to bugsnag and add a JSON output (#428, #429, #430) + - xhyve: log fatal errors to bugsnag (#425) + +* toolbox + - compose: bundle and install docker-compose (#423, by @justincormack) + - notary: bundle notary but do not install it yet because the generated + binary has some signing issue (#445) + +* DB + - bundle and install com.docker.db, an Irmin DB exposing a 9p interface + (#403, #415) + - update the Go API to use the new FS interface (#90) + +* installer + - docker-select now creates `/usr/local/bin` if it doesn't exists and force + install docker CLI and docker-compose if they are not properly installed + yet (#446) + + +### 2015-12-15 1.9.1-3 "Alpha-3" + +* Critical fix to 1.9.1-2 regarding auto-update + - Alpha-2 use the `master` channels instead of the `alpha` channel + +### 2015-12-14 1.9.1-2 "Alpha-2" + +* hypervisor + - process renamed to com.docker.driver.amd64-linux + +* distro (dom0) + - first release of moby, our own OS distro + +* network + - privileged daemon renamed to com.docker.vmnetd + - network daemon can now auto-update + +* storage (file-sharing) + - file-sharing daemon renamed to com.docker.lofs + +* installer + - install a proof-of-concept preference-panel + - report installation bug to bugsnag + - Docker.app is now properly signed + - The installer gives more feedback to the user + - need to run /Applications/Docker.app/Contents/Resources/docker-select + to install CLI tools + - configuration files are in ~/Library/Application Support/Docker + +* kitematic + - volumes works + - image pull works + - port forwarding works + +* preference-pane + - basic proof-of-concept + +* menubar + - allow to open a terminal + - allow to start the GUI + - allow to open the preference pane + - allow to check for upgrades and upgrade to a new version 2015-12-04 1.9.1-1 "Alpha-1" + +### 2015-12-04 1.9.1-1 "Alpha-1" + +* hypervisor + - more stable + - extensible storage (qcow2) for guests can now grow to 64 gB + - fixed amount of RAM extended to 2GB + +* installer + - install and start kitematic + - smaller: ~450MB + - auto-updates + +* Kitematic + - modified version of Kitematic which do not requires VirtualBox + +* menubar + - show HockeyApp version + - allow to upgrade to new version + - persisted on reboot + - appears whenever the hypervisor is started + +* user-feedback + - docker-diagnose + - use bugsnag + +### 2015-11-30 1.9.1-0 "Alpha-0" + + * hypervisor + - stable enough to boot a few times + - use qcow2 for extensible copy-on-write storage for guests (can grow to 1gB) + - fixed amount of RAM (1GB) + + * distro (dom0) + - heavily trimmed-down version of boot2docker + - still >100 MB + + * network + - network daemon runs as root + - blocker for integration in the App Store + - docker.local points to the distro VM + + * storage (file-sharing) + - basic file-sharing works over 9p + - not POSIX (issues with symlink, …) + - all files have the same user/group + - file timestamps can be wrong + + * installer + - install hypervisor, network daemon, storage daemon, docker CLI and menu-bar + - install docker in /usr/local/bin + - very big: 1GB + - report installation stats to mixpanel + + * docker + - upstream docker CLI 1.9.1 on OSX + - upstream docker daemon running in boot2docker + - simple proxy to rewrite volumes API running in OSX + - symlink /var/tmp/docker.sock to /var/run/docker.sock + - need root privileges on every reboot: blocker for App Store + - not very secure + +* menubar + - doesn’t do anything useful + - Not persisted on reboot diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000000..0a55ce60fa --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,21 @@ +Jeffrey Morgan +Sean Li +Michael Chiang +Adrien Duermael +Gaetan Devillelle +Solomon Hykes +Dave Scott +Michel Courtine +Thomas Gazagnaire +Emmanuel Briney +Justin Cormack +David Sheets +Stephen Day +Magnus Skjegstad +Patrick Chanezon +Thomas Leonard +David Gageot +Rolf Neugebauer +Richard Mortier +Jean-Laurent de Morlhon +Ben Bonnefoy diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..17c8ee1fad --- /dev/null +++ b/Makefile @@ -0,0 +1,254 @@ +MACOSX_DEPLOYMENT_TARGET?=10.10 +REPO_ROOT=$(shell git rev-parse --show-toplevel) +OUTPUT?=$(REPO_ROOT)/v1/mac/build/Docker.app +PROJECT_ROOT?=$(GOPATH)/src/github.com/docker/pinata +CACHE_DIR?=$(REPO_ROOT)/_cache + +# Getting version from Info.plist file +# NOTE(aduermael): this won't work on Windows +# It will be updated soon to support both platform +# with tags of the form: "win-.*" and "mac-.*" +plistPath=$(PROJECT_ROOT)/v1/mac/src/docker-app/docker/docker/Info.plist +versionFromPlist=$(shell /usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$(plistPath)" 2> /dev/null) +PARTS=$(subst -, ,$(versionFromPlist)) +VERSION=v$(word 1, $(PARTS))-$(word 2, $(PARTS)) + +# hockeyapp read-only tokens +HA_MAC_TOKEN=bf3c4239192a4511ab54ff5e963d51b1 +HA_WIN_TOKEN=64336e7527dc477da596bedfa2804540 + +# opam flags +OPAMROOT=$(CACHE_DIR)/opam +OPAMDIR=$(REPO_ROOT)/v1/opam +OPAMFLAGS=MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET) OPAMROOT=$(OPAMROOT) OPAMYES=1 OPAMCOLORS=1 OPAMDIR=$(OPAMDIR) GO15VENDOREXPERIMENT=1 +OPAMLIBS=mirage-block-c docker-diagnose osx-daemon osx-hyperkit +OPAMCMDS=osxfs +OPAMSUPPORT=nurse + +# TODO: this needs a cleaner solution +BACKENDCMDS=driver.amd64-linux vmnetd osx.hyperkit.linux hyperkit frontend shell #driver.amd64-qemu + +LICENSEDIRS=\ + $(PROJECT_ROOT)/v1/opam \ + $(PROJECT_ROOT)/v1/vendor \ + $(PROJECT_ROOT)/v1/uefi \ + $(OPAMROOT) \ + $(PROJECT_ROOT)/v1/cmd/com.docker.hyperkit \ + $(PROJECT_ROOT)/v1/docker_proxy/vendor \ + $(PROJECT_ROOT)/v1/mac/src/docker-app/docker/Carthage/Checkouts \ + $(PROJECT_ROOT)/v1/mac/dependencies/qemu + +.PHONY: all depends opam perf OSS-LICENSES dmg dsym-zip clean cacheclean versions go-fmt go-lint go-vet go-test go-depends + +all: opam mac + @ + +depends: mac-depends qemu-depends opam-depends go-depends moby-depends + @ + +clean: opam-clean backend-clean moby-clean + $(MAKE) -C $(PROJECT_ROOT)/v1/mac clean + +cacheclean: + rm -rf "$(HOME)/.docker-ci-cache/opam" + rm -rf "$(OPAMROOT)" + +OSS-LICENSES: + $(OPAMFLAGS) v1/opam/opam-licenses $(OPAMCMDS) + $(MAKE) -C $(PROJECT_ROOT)/v1/cmd/com.docker.hyperkit LICENSE + $(foreach dir, $(LICENSEDIRS), mkdir -p $(dir);) + $(PROJECT_ROOT)/v1/mac/scripts/list-licenses $(LICENSEDIRS) > OSS-LICENSES + +# opam applications + +UPSTREAM=$(shell ls $(OPAMDIR)/repo/packages/upstream | awk -F. '{ print $$1 }') +DEV=$(shell ls $(OPAMDIR)/repo/packages/dev) + +opam-depends: + @brew install opam || true &> /dev/null + @brew install dylibbundler || true &> /dev/null + @$(OPAMFLAGS) $(OPAMDIR)/opam-boot + @$(OPAMFLAGS) opam update -u + @$(OPAMFLAGS) opam install depext + @$(OPAMFLAGS) opam depext $(UPSTREAM) $(DEV) &> /dev/null + @$(OPAMFLAGS) opam install $(UPSTREAM) $(DEV) + +opam-lib-clean-%s: + $(OPAMFLAGS) $(MAKE) -C $(PROJECT_ROOT)/v1/$* clean + +opam-cmd-clean-%s: + $(OPAMFLAGS) $(MAKE) -C $(PROJECT_ROOT)/v1/cmd/com.docker.$* clean + +opam-support-clean-%: + $(OPAMFLAGS) $(MAKE) -C $(PROJECT_ROOT)/support/$* clean + +opam-clean: $(OPAMLIBS:%=opam-lib-clean-%s) $(OPAMCMDS:%=opam-cmd-clean-%s) $(OPAMSUPPORT:%=opam-support-clean-%) + @ + +opam-lib-%: + cd $(PROJECT_ROOT)/v1/$* && $(OPAMFLAGS) ./build.sh + +opam-cmd-%: + cd $(PROJECT_ROOT)/v1/cmd/com.docker.$* && $(OPAMFLAGS) ./build.sh + +opam-support-%: + cd $(PROJECT_ROOT)/support/$* && $(OPAMFLAGS) ./build.sh + +opam: $(OPAMLIBS:%=opam-lib-%) $(OPAMCMDS:%=opam-cmd-%) $(OPAMSUPPORT:%=opam-support-%) OSS-LICENSES + @ + +# backend + +backend-cmd-clean-%: + cd $(PROJECT_ROOT)/v1/cmd/com.docker.$* && $(OPAMFLAGS) $(MAKE) clean + +backend-lib-clean-%: + cd $(PROJECT_ROOT)/v1/$* && $(OPAMFLAGS) $(MAKE) clean + +backend-clean: $(BACKENDCMDS:%=backend-cmd-clean-%) + @ + +backend-cmd-%: + cd $(PROJECT_ROOT)/v1/cmd/com.docker.$* && $(OPAMFLAGS) $(MAKE) CACHE_DIR=$(CACHE_DIR) + +backend-cmd-vmnetd: opam +backend-cmd-hyperkit: backend-cmd-vmnetd + +backend: $(BACKENDCMDS:%=backend-cmd-%) + @ + +# moby +moby-depends: + go get -u github.com/justincormack/regextract + +moby: + cd $(PROJECT_ROOT)/v1/moby && make + +moby-clean: + cd $(PROJECT_ROOT)/v1/moby && make clean + +# mac app + +mac-depends: + cd $(PROJECT_ROOT)/v1/mac/scripts && ./make.bash -dy + +mac: opam backend moby docker-release + cd $(PROJECT_ROOT)/v1/mac/scripts && ./make.bash -cby + +dmg: + cd $(PROJECT_ROOT)/v1/mac/scripts && ./make-dmg + +dsym-zip: + cd $(PROJECT_ROOT)/v1/mac/scripts && ./make-dsym-zip + +# run Docker.app + +dev: opam mac + rm -rf "$(PROJECT_ROOT)/v1/mac/build" + rm -rf "$(PROJECT_ROOT)/v1/mac/src/docker-app/build" + cd $(PROJECT_ROOT)/v1/mac/src/docker-app && make dev + +# open Docker.app .xcodeproj + +run: + $(PROJECT_ROOT)/v1/mac/build/Docker.app/Contents/MacOS/Docker + +backend-run: + @$(PROJECT_ROOT)/v1/cmd/com.docker.shell/com.docker.shell -debug -bundle $(PROJECT_ROOT)/v1/mac/build/Docker.app + +# tests +lint: go-fmt go-lint go-vet + # lint test scripts + brew install shellcheck + find tests/cases -type f | xargs -L1 file -I | grep 'text/x-shellscript' | cut -f1 -d":" | xargs -L1 shellcheck -e SC2129,SC1090,SC2039 + +GOPACKAGES = $(eval GOPACKAGES := $(shell cd $(PROJECT_ROOT)/v1 && go list -e ./... | grep -v vendor | grep -v moby))$(GOPACKAGES) + + +go-depends: + go get -u github.com/golang/lint/golint + +go-fmt: + @for pkg in $(GOPACKAGES) ; do \ + echo "gofmt $${pkg##*pinata/} ..." ;\ + cd $(PROJECT_ROOT)/$${pkg##*pinata/} ;\ + test -z "$$(gofmt -s -l . 2>&1 | grep -v ^vendor/ | tee /dev/stderr)" || exit 1 ;\ + done + +go-lint: + @for pkg in $(GOPACKAGES) ; do \ + echo "golint $${pkg##*pinata/} ..." ;\ + cd $(PROJECT_ROOT)/$${pkg##*pinata/} ;\ + test -z "$$(golint . 2>&1 | grep -v ^vendor/ | tee /dev/stderr)" || exit 1 ;\ + done + +go-vet: + @cd $(PROJECT_ROOT) && go vet $(GOPACKAGES) + +go-test: + @cd $(PROJECT_ROOT) && for pkg in $(GOPACKAGES) ; do \ + echo "testing $$pkg ..." ;\ + go test -race -v $$pkg ;\ + done + +test-depends: opam + cd $(PROJECT_ROOT)/v1/tests && $(OPAMFLAGS) ./build.sh + +test: lint test-depends go-test + (cd $(PROJECT_ROOT)/tests && ./rt-local -l nostart,checkout -v -x run) + +# test-dmg also tests the dmg - it's assumed that `make dmg` was performed first first +test-dmg: lint test-depends go-test + (cd $(PROJECT_ROOT)/tests && ./rt-local -l installer,checkout -v -x run) + +fulltest: + (cd $(PROJECT_ROOT)/tests && ./rt-local -l nostart,release,checkout -v -x run) + PINATA_APP_PATH=$(OUTPUT) $(PROJECT_ROOT)/v1/tests/pinata-rt test -e + +perf: + make -C $(PROJECT_ROOT)/v1/perf + +# qemu +QEMUV = 2.4.1 +export QEMUV +qemu-depends: + @mkdir -p $(CACHE_DIR) + @cd $(PROJECT_ROOT)/v1/cmd/com.docker.driver.amd64-qemu && make depends CACHE_DIR=$(CACHE_DIR) + +# upload to HockeyApp + +upload: + @cd $(PROJECT_ROOT)/v1/mac/scripts && ./make.bash -uy + +release: + rm -rf "$(PROJECT_ROOT)/v1/mac/build" + rm -rf "$(HOME)/.docker-ci-cache" + rm -rf "$(CACHE_DIR)" + make depends + make + make test + git tag $(VERSION) -a -m "Release $(VERSION)" + git push upstream $(VERSION) + +versions: + @echo git tag name: $(VERSION) + @echo Xcode project version \(Info.plist\): $(versionFromPlist) + @echo Changelog: $(shell head -n 1 CHANGELOG | cut -f 3 -d" ") + @echo docker-diagnose: $(shell cat v1/docker-diagnose/src/dockerCli.ml | grep check_version) + +release-to-rc: + @echo "Releasing latest builds to RC (the newest unreleased build will also be downloaded)" + docker-release --channel rc --arch mac --build latest publish + docker-release --channel rc --arch win --build latest publish + +# docker-release build +docker-release: + cd $(PROJECT_ROOT)/v1/docker-release && make + +# helpful targets for development +logwatch: + syslog -w -F '$$Time $$Host $$(Sender)[$$(Facility)][$$(PID)]\n<$$((Level)(str))>: $$Message' \ + -k Sender Seq Docker -o \ + -k Sender Seq docker -o \ + -k Message Seq Docker -o \ + -k Message Seq docker diff --git a/README.md b/README.md new file mode 100644 index 0000000000..adaf4bca89 --- /dev/null +++ b/README.md @@ -0,0 +1,163 @@ +# Pinata: an experimental standalone Docker client + +| | pr | master | rc | beta | stable | +|---|---|---|---|---|---| +| macOS | [latest](https://download-stage.docker.com/mac/pr/Docker.dmg) | [latest](https://download-stage.docker.com/mac/master/Docker.dmg) | [latest](https://download-stage.docker.com/mac/rc/Docker.dmg) | [latest](https://download.docker.com/mac/beta/Docker.dmg) | [latest](https://download.docker.com/mac/stable/Docker.dmg) | +| Windows | [latest](https://download-stage.docker.com/win/pr/InstallDocker.msi) | [latest](https://download-stage.docker.com/win/master/InstallDocker.msi) | [latest](https://download-stage.docker.com/win/test/InstallDocker.msi) | [latest](https://download.docker.com/win/beta/InstallDocker.msi) | [latest](https://download.docker.com/win/stable/InstallDocker.msi) | +*( if you get Access Denied errors, it means nothing has been published to this channel yet )* + +To list all the versions: http://omakase.omakase.e57b9b5b.svc.dockerapp.io/ + +This is an experimental project to develop a new client for Docker, +separately from the daemon or any other backend component. + +By maintaining a standalone client, the goal is to: + +1. Allow for more rapid iteration on client functionality. +2. Improve compatibility between different versions of the client and daemon. +3. Add more features to the client without bloating the daemon-side components. +4. Pave the way to simplifying the daemon code base, improving its +quality and making its maintenance easier. + +## Versioning + +The release cycle respects the following convention: `X-Y[-Z]` where: + +- `X` is the version of the docker engine used as a base for the build. The build can be modified during the build process to fit better into the use-case of `Docker.app` (ie. it won't usually be a drop-in replacement, but we will try to upstream our patches as quickly as possible). + +- `Y` is an arbitrary string that we can use to define a version of `Docker.app`, independently of the release cycle of docker engine. + +- `Z` indicates the build channel (dev, test, master, release). `Z` is empty for releases. + +For instance the first beta release of pinata has the version: `1.9.1-beta1`. While on master channel (one build for each PR merged), it has the version: `1.9.1-beta1-master`. + +On OS X, the version is defined in XCode project's Info.plist file (key: `CFBundleShortVersionString`). There's also a build number, associated with `CFBundleVersion` key (set by CI). + +In Xcode project, the version should use a suffix like `-dev` (`1.9.1-beta1-dev`). That suffix will be replaced/removed by CI. + +## INSTALL + +### Through HockeyApp + +For Docker for Mac see the [Docker.app installation guide](https://github.com/docker/pinata/blob/master/v1/docs/content/mackit/getting-started.md) and for Docker for Windows see the [Docker installation guide](https://github.com/docker/pinata/blob/master/v1/docs/content/winkit/getting-started.md) + +### OSX Build + +Check that your `GOPATH` is correctly set-up and clone this repository in +`$GOPATH/src/github.com/docker/pinata`. + +#### Dependencies + +As prerequisites, you need to have `Xcode`, `homebrew` and `go` installed. + +To minimize build times, the dependencies are cached with this command + +You only need to run it once or when an external dependency was updated + +At the root of this repository, type: + +``` +make depends +``` + +When you add a new go dependency, add it in the `GO_DEPS` variable of the toplevel +`Makefile`. + +#### Build + +After a successful `make depends`, type: + +``` +make +``` + +If you are asked for the password to the `dockerbuilder` keychain, it is +`docker4all`. + +#### Run + +After a successful `make depends` and `make`, type: + +``` +make run +``` + +You will see the logs on stdout + +#### Install + +First, make sure you have uninstalled any previous installation of +pinata with: + +``` +v1/mac/uninstall +``` + +Then, install with: + +``` +v1/mac/build/Docker.app/Contents/MacOS/docker-installer +``` + +#### Tests + +You can run the tests by running: + +``` +make test +``` +This is currently Mac only. + + + +### Windows Build + +[![Build status](https://ci.appveyor.com/api/projects/status/fpa7neeotor31bdh/branch/master?svg=true)](https://ci.appveyor.com/project/Pinata/pinata/branch/master) + +Latest msi builds : + * On [Master](https://download-stage.docker.com/win/master/InstallDocker.msi) channel. + * On [Test](https://download-stage.docker.com/win/test/InstallDocker.msi) channel. + +Check that your `GOPATH` is correctly set-up and clone this repository in +`$GOPATH/src/github.com/docker/pinata`. + +#### Dependencies + +Install: + +- Go 1.6 +- [Visual Studio 2015](https://www.visualstudio.com/en-us/products/vs-2015-product-editions.aspx). The app builds with the free Community edition but the licensing for that edition doesn't allow its use for commercial, closed source work. + +Once you installed the above, open a powershell. + +#### Build + +The main build is driven by the `please.ps1` powershell script in the `win` +sub-directory. + +``` +cd /win +./please.ps1 package +``` + +will clean the build directory and build a new package (installer) in +the `build` sub-directory. + + +``` +cd /win +./please.ps1 build +``` + +will build a new `Docker.exe` file but not the installer. + +### Troubleshooting + +If you have an issue, please report it to the +[bugtracker](https://github.com/docker/pinata/issues) with the output +of: + +``` +pinata diagnose +``` +This is currently Mac only. diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..74506a7ff0 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,54 @@ +environment: + GOPATH: c:\gopath + SIGNTOOLPATH: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin + +clone_folder: c:\gopath\src\github.com\docker\pinata + +before_build: + - cd win/ + +build_script: + - ps: ./please.ps1 AppVeyor + +after_build: + - cd .. + - ps: > + copy .\win\build\InstallDocker.msi InstallDocker.msi + +artifacts: + - path: win/build/InstallDocker.msi + - path: win/TestResults/*.xml + - path: InstallDocker.msi + +test: off + +configuration: Release + +before_deploy: + - ps: > + if ($env:appveyor_pull_request_number -gt 0) { + git fetch -q origin +refs/pull/$env:appveyor_pull_request_number/head + $env:commit=(git rev-parse FETCH_HEAD) + } else { + $env:commit=$env:appveyor_repo_commit + } + true; + +deploy: + - provider: S3 + bucket: pinata-ci + access_key_id: $(pinata_aws_key) + secret_access_key: $(pinata_aws_secret) + folder: $(commit) + artifact: InstallDocker.msi + on: + appveyor_repo_tag: false + - provider: S3 + bucket: pinata-ci + access_key_id: $(pinata_aws_key) + secret_access_key: $(pinata_aws_secret) + folder: $(appveyor_repo_tag_name) + artifact: InstallDocker.msi + on: + appveyor_repo_tag: true + diff --git a/circle-linux.yml b/circle-linux.yml new file mode 100644 index 0000000000..837d719160 --- /dev/null +++ b/circle-linux.yml @@ -0,0 +1,27 @@ +# Linux specific circleci.yml +# This build process only build the docs. +# A process mirrors this repo in another repo for every commit, and cp circle-linux.yml to circle.yml. +# This ensures that a Linux build happens in circleci for every commit. + +general: + build_dir: v1 + artifacts: + - "docs/public" + - "mac/build" +machine: + services: + - docker +dependencies: + cache_directories: + - "~/docker" + override: + - make -C docs DOCS_EXPORT=public docs-deploy + - if [[ -e ~/docker/image.tar ]]; then docker load -i ~/docker/image.tar; fi + - mac/make -cblvy + - mkdir -p ~/docker; mkdir -p ~/pinata/v1/mac/build + - docker save pinata/docker-builder > ~/docker/image.tar +deployment: + master: + branch: master + commands: + - make -C docs DOCS_EXPORT=public docs-deploy diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000000..afda8e63e2 --- /dev/null +++ b/circle.yml @@ -0,0 +1,105 @@ +# Mac specific circleci.yml +# This build process will download and bundle the build artifacts from the linux ci. +# Checkout the same file on the linux branch to edit the linux version of the circleci configuration + +general: + artifacts: + - v1/mac/build/Docker.dmg + - tests/_results + - ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log + - ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring +machine: + xcode: + version: "8.0" + environment: + GOVERSION: 1.7.1 + GOPATH: "$HOME/go" + GOROOT: "${HOME}/.gimme/versions/go${GOVERSION}.darwin.amd64" + PATH: "${GOROOT}/bin:${GOPATH}/bin:${PATH}" + PROJECT_ROOT: "$GOPATH/src/github.com/docker/pinata" + CI: "1" + post: + - brew unpin go + - brew update + - brew -v install git-lfs + # something forces /usr/loca/bin to the front of the path. + # we'll remove the existing go to be sure + - rm /usr/local/bin/go + - brew -v install gimme + - gimme $GOVERSION + # display homebrew config + - brew config +checkout: + post: + - brew unpin go + - git lfs install --local + - git lfs pull + # Check disk space + - df -h + # check consistency of v1/opam/repo + - v1/opam/repo/check.sh + # v1/cmd/com.docker.hyperkit/hyperkit/ is a git subtree merge from + # http://github.com/docker/hyperkit and no code should be + # committed directly to it. To do this we need to unshallow and to + # have the hyperkit history available. + # + # Mistakes were made prior to + # 5e58d3e47a592e9235c4d03a099bc52ccd7a47ae which were repaired in + # that commit. Start checking from then onwards. + - if [ -s .git/shallow ] ; then git fetch --unshallow git@github.com:docker/pinata master ; fi + - git fetch https://github.com/docker/hyperkit +master:hyperkit/master + - > + if ! git log --no-merges --stat 5e58d3e47a592e9235c4d03a099bc52ccd7a47ae..HEAD --not hyperkit/master -- v1/cmd/com.docker.hyperkit/hyperkit/ | + awk 'BEGIN { rc=0 }; // { rc=1; print }; END { exit $rc }' ; then + echo ""; + echo "Direct commit to hyperkit vendored code detected. Please see:"; + echo "https://github.com/docker/pinata/blob/master/v1/cmd/com.docker.hyperkit/README.md"; + exit 1 + fi +dependencies: + override: + - which go + - go version + - rm -rf "$PROJECT_ROOT" + - mkdir -p $(dirname "$PROJECT_ROOT") + - ln -s $(pwd) "$PROJECT_ROOT" + - make cacheclean + - make mac-depends + - make opam-depends + - make moby-depends + - make go-depends + cache_directories: + - ~/.docker-ci-cache +test: + override: + - make clean + - make opam + - make mac + - make dmg + - make dsym-zip + - make test-dmg + - > + syslog -F "\$Time \$Host \$(Sender)[\$(Facility)][\$(PID)]<\$((Level)(str))>: \$Message" \ + -k Sender Seq Docker -o \ + -k Sender Seq docker -o \ + -k Message Seq Docker -o \ + -k Message Seq docker +deployment: + release: + branch: master + owner: docker + commands: + - aws s3 cp v1/mac/build/Docker.dmg s3://pinata-ci/$CIRCLE_SHA1/Docker.dmg + - make upload + tags: + tag: /.*/ + owner: docker + commands: + - aws s3 cp v1/mac/build/Docker.dmg s3://pinata-ci/$CIRCLE_TAG/Docker.dmg + - make upload + pr: + branch: /.*/ + owner: docker + commands: + - aws s3 cp v1/mac/build/Docker.dmg s3://pinata-ci/$CIRCLE_SHA1/Docker.dmg + - make upload diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 0000000000..6ccd6b2d3a --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,10 @@ +FROM docs/base:oss +MAINTAINER Docker Docs + +# because both the 2 dir's are going into the root +env PROJECT= + +# To get the git info for this repo +COPY . /src +#RUN rm -rf /docs/content/$PROJECT/ +COPY . /docs/content/$PROJECT/ diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000..72fb4bf9c8 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,39 @@ +.PHONY: all default docs docs-build docs-shell shell test + +# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs) +DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR)) + +# to allow `make DOCSPORT=9000 docs` +DOCSPORT := 8000 + +# Get the IP ADDRESS +DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''") +HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)") +HUGO_BIND_IP=0.0.0.0 + +GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) +DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH)) +DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH)) + + +DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE + +# for some docs workarounds (see below in "docs-build" target) +GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null) + +default: docs + +docs: docs-build + $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP) + +docs-draft: docs-build + $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP) + +docs-shell: docs-build + $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash + +test: docs-build + $(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" + +docs-build: + docker build -t "$(DOCKER_DOCS_IMAGE)" . diff --git a/docs/docker-for-mac/docker-toolbox.md b/docs/docker-for-mac/docker-toolbox.md new file mode 100644 index 0000000000..1be3f5bc83 --- /dev/null +++ b/docs/docker-for-mac/docker-toolbox.md @@ -0,0 +1,145 @@ + + +# Docker for Mac vs. Docker Toolbox + +If you already have an installation of Docker Toolbox, please read these topics first to learn how Docker for Mac and Docker Toolbox differ, and how they can coexist. + + +## The Docker Toolbox environment + +Docker Toolbox installs `docker`, `docker-compose` and `docker-machine` in `/usr/local/bin` on your Mac. It also installs VirtualBox. At installation time, Toolbox uses `docker-machine` to provision a VirtualBox VM called `default`, running the `boot2docker` Linux distribution, with [Docker Engine](https://docs.docker.com/engine/) with certificates located on your Mac at `$HOME/.docker/machine/machines/default`. + +Before you use `docker` or `docker-compose` on your Mac, you typically use the command `eval $(docker-machine env default)` to set environment variables so that `docker` or `docker-compose` know how to talk to Docker Engine running on VirtualBox. + +This setup is shown in the following diagram. + +![Docker Toolbox Install](images/toolbox-install.png) + + +## The Docker for Mac environment + +Docker for Mac is a Mac native application, that you install in `/Applications`. At installation time, it creates symlinks in `/usr/local/bin` for `docker` and `docker-compose`, to the version of the commands inside the Mac application bundle, in `/Applications/Docker.app/Contents/Resources/bin`. + +Here are some key points to know about Docker for Mac before you get started: + +* Docker for Mac does not use VirtualBox, but rather HyperKit, a lightweight OS X virtualization solution built on top of Hypervisor.framework in OS X 10.10 Yosemite and higher. + +* Installing Docker for Mac does not affect machines you created with Docker Machine. The install offers to copy containers and images from your local `default` machine (if one exists) to the new Docker for Mac HyperKit VM. If chosen, content from `default` is copied to the new Docker for Mac HyperKit VM, and your original `default` machine is kept as is. + +* The Docker for Mac application does not use `docker-machine` to provision that VM; but rather creates and manages it directly. + +* At installation time, Docker for Mac provisions an HyperKit VM based on Alpine Linux, running Docker Engine. It exposes the docker API on a socket in `/var/tmp/docker.sock`. Since this is the default location where `docker` will look if no environment variables are set, you can start using `docker` and `docker-compose` without setting any environment variables. + +This setup is shown in the following diagram. + +![Docker for Mac Install](images/docker-for-mac-install.png) + +With Docker for Mac, you get only one VM, and you don't manage it. It is managed by the Docker for Mac application, which includes autoupdate to update the client and server versions of Docker. + +If you need several VMs and want to manage the version of the Docker client or server you are using, you can continue to use `docker-machine`, on the same machine, as described in [Docker Toolbox and Docker for Mac coexistence](#docker-toolbox-and-docker-for-mac-coexistence). + + +## Setting up to run Docker for Mac + +1. Check whether Toolbox DOCKER environment variables are set: + + $ env | grep DOCKER + DOCKER_HOST=tcp://192.168.99.100:2376 + DOCKER_MACHINE_NAME=default + DOCKER_TLS_VERIFY=1 + DOCKER_CERT_PATH=/Users/victoriabialas/.docker/machine/machines/default + + If this command returns no output, you are ready to use Docker for Mac. + + If it returns output (as shown in the example), you need to unset the `DOCKER` environment variables to make the client talk to the Docker for Mac Engine (next step). + +2. Run the `unset` command on the following `DOCKER` environment variables to unset them in the current shell. + + unset DOCKER_TLS_VERIFY + unset DOCKER_CERT_PATH + unset DOCKER_MACHINE_NAME + unset DOCKER_HOST + + Now, this command should return no output. + + $ env | grep DOCKER + + If you are using a Bash shell, you can use `unset ${!DOCKER_*}` to unset all DOCKER environment variables at once. (This will not work in other shells such as `.zsh`; you will need to unset each variable individually.) + +>**Note**: If you have a shell script as part of your profile that sets these `DOCKER` environment variables automatically each time you open a command window, then you will need to unset these each time you want to use Docker for Mac. + +> **Warning**: If you install Docker for Mac on a machine where Docker Toolbox is installed, it will replace the `docker` and `docker-compose` command lines in `/usr/local/bin` with symlinks to its own versions. + + +## Docker Toolbox and Docker for Mac coexistence + +You can use Docker for Mac and Docker Toolbox together on the same machine. When you want to use Docker for Mac, make sure all DOCKER environment variables are unset. You can do this in bash with `unset ${!DOCKER_*}`. When you want to use one of the VirtualBox VMs you have set with `docker-machine`, just run a `eval $(docker-machine env default)` (or the name of the machine you want to target). This will switch the current command shell to talk to the specified Toolbox machine. + +This setup is represented in the following diagram. + +![Docker Toolbox and Docker for Mac coexistence](images/docker-for-mac-and-toolbox.png) + + +## Using different versions of Docker tools + +The coexistence setup works as is as long as your VirtualBox VMs provisioned with `docker-machine` run the same version of Docker Engine as Docker for Mac. If you need to use VMs running older versions of Docker Engine, you can use a tool like Docker Version Manager to manage several versions of docker client. + + +### Checking component versions + +Ideally, the Docker CLI client and Docker Engine should be the same version. Mismatches between client and server, and among host machines you might have created with Docker Machine can cause problems (client can't talk to the server or host machines). + +If you already have Docker Toolbox installed, and then install Docker for Mac, you might get a newer version of the Docker client. Run `docker version` in a command shell to see client and server versions. In this example, the client installed with Docker for Mac is `Version: 1.11.1` and the server (which was installed earlier with Toolbox) is Version: 1.11.0. + + $ docker version + Client: + Version: 1.11.1 + ... + + Server: + Version: 1.11.0 + ... + +Also, if you created machines with Docker Machine (installed with Toolbox) then upgraded or installed Docker for Mac, you might have machines running different versions of Engine. Run `docker-machine ls` to view version information for the machines you created. In this example, the DOCKER column shows that each machine is running a different version of server. + + $ docker-machine ls + NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS + aws-sandbox - amazonec2 Running tcp://52.90.113.128:2376 v1.10.0 + default * virtualbox Running tcp://192.168.99.100:2376 v1.10.1 + docker-sandbox - digitalocean Running tcp://104.131.43.236:2376 v1.10.0 + +You might also run into a similar situation with Docker Universal Control Plan (UCP). + +There are a few ways to address this problem and keep using your older machines. One solution is to use a version manager like DVM. + +## How do I uninstall Docker Toolbox? + +You might decide that you do not need Toolbox now that you have Docker for Mac, +and want to uninstall it. For details on how to perform a clean uninstall of +Toolbox on the Mac, see [How to uninstall +Toolbox](/toolbox/toolbox_install_mac.md#how-to-uninstall-toolbox) in the +Toolbox Mac topics. + +
+