j1-template 2020.0.19 → 2020.0.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (506) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/ads/ad.html +2 -2
  3. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +1 -1
  4. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +3 -3
  5. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +1 -1
  6. data/_includes/themes/j1/blocks/footer/generator.html +2 -2
  7. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +11 -11
  8. data/_includes/themes/j1/layouts/content_generator_collection.html +2 -2
  9. data/_includes/themes/j1/layouts/content_generator_page.html +4 -4
  10. data/_includes/themes/j1/layouts/content_generator_post.html +64 -162
  11. data/_includes/themes/j1/layouts/layout_metadata_generator.html +2 -2
  12. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +15 -1
  13. data/_includes/themes/j1/modules/connectors/ads +2 -2
  14. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +2 -4
  15. data/_includes/themes/j1/modules/connectors/analytics +2 -2
  16. data/_includes/themes/j1/modules/connectors/comment/disqus.html +38 -25
  17. data/_includes/themes/j1/modules/connectors/comments +2 -2
  18. data/_includes/themes/j1/modules/connectors/translator +2 -2
  19. data/_includes/themes/j1/modules/navigator/generator.html +17 -8
  20. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +36 -26
  21. data/_includes/themes/j1/procedures/global/attributes_loader.proc +117 -0
  22. data/_includes/themes/j1/procedures/global/create_bs_button.proc +4 -3
  23. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +17 -13
  24. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
  25. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +3 -3
  26. data/_includes/themes/j1/procedures/global/setup.proc +9 -9
  27. data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -2
  28. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  29. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
  30. data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
  31. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +18 -17
  32. data/_includes/themes/j1/procedures/posts/create_series_header.proc +9 -5
  33. data/_layouts/default.html +3 -3
  34. data/_layouts/home.html +2 -2
  35. data/apps/public/cc/cc.yml +37 -38
  36. data/assets/data/authclient.html +2 -2
  37. data/assets/data/banner.html +25 -21
  38. data/assets/data/carousel.json +1 -1
  39. data/assets/data/cookiebar.html +17 -13
  40. data/assets/data/fam.html +124 -0
  41. data/assets/data/footer.html +1 -1
  42. data/assets/data/galleries.json +1 -1
  43. data/assets/data/gallery_customizer.html +19 -7
  44. data/assets/data/mdi_icons.json +1 -1
  45. data/assets/data/menu.html +2 -2
  46. data/assets/data/mmenu.html +2 -2
  47. data/assets/data/mmenu_sidebar.html +4 -4
  48. data/assets/data/mmenu_toc.html +1 -1
  49. data/assets/data/panel.html +113 -67
  50. data/assets/data/quicklinks.html +16 -16
  51. data/assets/data/themes.json +9 -9
  52. data/assets/data/twa_v1.json +1 -1
  53. data/assets/error_pages/HTTP204.html +1 -0
  54. data/assets/error_pages/HTTP400.html +3 -2
  55. data/assets/error_pages/HTTP401.html +3 -2
  56. data/assets/error_pages/HTTP403.html +3 -2
  57. data/assets/error_pages/HTTP404.html +3 -2
  58. data/assets/error_pages/HTTP500.html +3 -2
  59. data/assets/error_pages/HTTP501.html +3 -2
  60. data/assets/error_pages/HTTP502.html +3 -2
  61. data/assets/error_pages/HTTP503.html +3 -2
  62. data/assets/error_pages/HTTP520.html +3 -2
  63. data/assets/error_pages/HTTP521.html +3 -2
  64. data/assets/error_pages/HTTP533.html +3 -2
  65. data/assets/themes/j1/adapter/js/algolia.js +2 -2
  66. data/assets/themes/j1/adapter/js/attic.js +2 -2
  67. data/assets/themes/j1/adapter/js/{mdb.js → bmd.js} +11 -11
  68. data/assets/themes/j1/adapter/js/carousel.js +6 -6
  69. data/assets/themes/j1/adapter/js/clipboard.js +3 -3
  70. data/assets/themes/j1/adapter/js/cookiebar.js +1 -1
  71. data/assets/themes/j1/adapter/js/{ssm.js → fam.js} +275 -148
  72. data/assets/themes/j1/adapter/js/framer.js +74 -62
  73. data/assets/themes/j1/adapter/js/gallery_customizer.js +4 -3
  74. data/assets/themes/j1/adapter/js/j1.js +25 -19
  75. data/assets/themes/j1/adapter/js/jf_gallery.js +4 -4
  76. data/assets/themes/j1/adapter/js/lightbox.js +2 -2
  77. data/assets/themes/j1/adapter/js/logger.js +2 -2
  78. data/assets/themes/j1/adapter/js/{searcher.js → lunr_search.js} +68 -65
  79. data/assets/themes/j1/adapter/js/mmenu.js +16 -10
  80. data/assets/themes/j1/adapter/js/navigator.js +81 -60
  81. data/assets/themes/j1/adapter/js/rouge.js +246 -0
  82. data/assets/themes/j1/adapter/js/rtable.js +181 -0
  83. data/assets/themes/j1/adapter/js/themer.js +63 -110
  84. data/assets/themes/j1/adapter/js/toccer.js +72 -32
  85. data/assets/themes/j1/core/css/animate.css +15 -15
  86. data/assets/themes/j1/core/css/bootstrap.css +0 -14
  87. data/assets/themes/j1/core/css/custom.scss +28 -0
  88. data/assets/themes/j1/core/css/globals.css +14523 -0
  89. data/assets/themes/j1/core/css/globals.min.css +1 -0
  90. data/assets/themes/j1/core/css/globals.scss +28 -0
  91. data/assets/themes/j1/core/css/{icons-fontawesome.css → icon-fonts/fontawesome.css} +17 -17
  92. data/assets/themes/j1/core/css/{icons-fontawesome.min.css → icon-fonts/fontawesome.min.css} +0 -0
  93. data/assets/themes/j1/core/css/{icons-iconify.css → icon-fonts/iconify.css} +15 -15
  94. data/assets/themes/j1/core/css/{icons-iconify.min.css → icon-fonts/iconify.min.css} +0 -0
  95. data/assets/themes/j1/core/css/{icons-materialdesign.css → icon-fonts/materialdesign.css} +17 -17
  96. data/assets/themes/j1/core/css/{icons-materialdesign.min.css → icon-fonts/materialdesign.min.css} +0 -0
  97. data/assets/themes/j1/core/css/{icons-twemoji.css → icon-fonts/twemoji.css} +18 -18
  98. data/assets/themes/j1/core/css/{icons-twemoji.min.css → icon-fonts/twemoji.min.css} +0 -0
  99. data/assets/themes/j1/core/css/{theme-extensions.css → theme_extensions.css} +3625 -1816
  100. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -0
  101. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +7171 -0
  102. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +6 -0
  103. data/assets/themes/j1/core/css/{uno-dark.css → themes/uno-dark/bootstrap.css} +548 -316
  104. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +6 -0
  105. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +22519 -0
  106. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +8 -0
  107. data/assets/themes/j1/core/css/uno.css +5284 -15518
  108. data/assets/themes/j1/core/css/uno.min.css +1 -8
  109. data/assets/themes/j1/core/css/uno.scss +28 -0
  110. data/assets/themes/j1/core/css/vendor.css +102 -73
  111. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  112. data/assets/themes/j1/core/css/vendor.scss +28 -0
  113. data/assets/themes/j1/core/js/template.js +6 -11
  114. data/assets/themes/j1/core/js/template.js.map +1 -1
  115. data/assets/themes/j1/core/js/template.min.js +1 -1
  116. data/assets/themes/j1/modules/backstretch/js/backstretch.js +12 -13
  117. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +12 -13
  118. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.full.js +6930 -0
  119. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +6 -0
  120. data/assets/themes/j1/modules/carousel/css/carousel.css +8 -9
  121. data/assets/themes/j1/modules/carousel/css/carousel.min.css +7 -9
  122. data/assets/themes/j1/modules/carousel/css/carousel_transitions.css +7 -8
  123. data/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css +7 -9
  124. data/assets/themes/j1/modules/carousel/css/theme/uno.css +39 -48
  125. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +8 -9
  126. data/assets/themes/j1/modules/cash/js/cash.js +1374 -0
  127. data/assets/themes/j1/modules/cash/js/cash.min.js +42 -0
  128. data/assets/themes/j1/modules/clipboard/css/theme/uno.css +9 -9
  129. data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +8 -45
  130. data/assets/themes/j1/modules/fam/css/uno/fam.css +369 -0
  131. data/assets/themes/j1/modules/fam/js/fam.js +477 -0
  132. data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +1 -1
  133. data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.js → resizer.js} +0 -0
  134. data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.map → resizer.map} +0 -0
  135. data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.min.js → resizer.min.js} +0 -0
  136. data/assets/themes/j1/modules/jquery/js/jquery.js +7 -4
  137. data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -2
  138. data/assets/themes/j1/modules/jquery/js/require.js +2145 -0
  139. data/assets/themes/j1/modules/jquery/js/require.min.js +5 -0
  140. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +13 -13
  141. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +8 -31
  142. data/assets/themes/j1/modules/lightGallery/css/themes/uno.css +7 -8
  143. data/assets/themes/j1/modules/lightGallery/css/themes/uno.min.css +8 -10
  144. data/assets/themes/j1/modules/lightbox/css/lightbox.css +11 -12
  145. data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +11 -12
  146. data/assets/themes/j1/modules/lightbox/css/theme/uno.css +7 -7
  147. data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +7 -8
  148. data/assets/themes/j1/modules/lightbox/js/lightbox.js +12 -13
  149. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +11 -27
  150. data/assets/themes/j1/modules/lunrSearch/css/lunr_search.css +32 -0
  151. data/assets/themes/j1/modules/lunrSearch/css/lunr_search.min.css +25 -0
  152. data/assets/themes/j1/modules/lunrSearch/js/dateformat.js +125 -0
  153. data/assets/themes/j1/modules/lunrSearch/js/dateformat.min.js +14 -0
  154. data/assets/themes/j1/modules/lunrSearch/js/lunr.js +3475 -0
  155. data/assets/themes/j1/modules/lunrSearch/js/lunr.min.js +51 -0
  156. data/assets/themes/j1/modules/lunrSearch/js/lunr_search.js +184 -0
  157. data/assets/themes/j1/modules/lunrSearch/js/lunr_search.min.js +17 -0
  158. data/assets/themes/j1/modules/lunrSearch/js/mustache.js +772 -0
  159. data/assets/themes/j1/modules/lunrSearch/js/mustache.min.js +772 -0
  160. data/assets/themes/j1/modules/lunrSearch/js/uri.js +2340 -0
  161. data/assets/themes/j1/modules/lunrSearch/js/uri.min.js +93 -0
  162. data/assets/themes/j1/modules/materialize/js/anime.js +1283 -0
  163. data/assets/themes/j1/modules/materialize/js/anime.min.js +34 -0
  164. data/assets/themes/j1/modules/materialize/js/autocomplete.js +450 -0
  165. data/assets/themes/j1/modules/materialize/js/buttons.js +409 -0
  166. data/assets/themes/j1/modules/materialize/js/cards.js +40 -0
  167. data/assets/themes/j1/modules/materialize/js/carousel.js +717 -0
  168. data/assets/themes/j1/modules/materialize/js/cash-dom.js +1044 -0
  169. data/assets/themes/j1/modules/materialize/js/cash.js +960 -0
  170. data/assets/themes/j1/modules/materialize/js/characterCounter.js +136 -0
  171. data/assets/themes/j1/modules/materialize/js/chips.js +481 -0
  172. data/assets/themes/j1/modules/materialize/js/collapsible.js +275 -0
  173. data/assets/themes/j1/modules/materialize/js/component.js +44 -0
  174. data/assets/themes/j1/modules/materialize/js/datepicker.js +975 -0
  175. data/assets/themes/j1/modules/materialize/js/dropdown.js +617 -0
  176. data/assets/themes/j1/modules/materialize/js/forms.js +275 -0
  177. data/assets/themes/j1/modules/materialize/js/global.js +427 -0
  178. data/assets/themes/j1/modules/materialize/js/materialbox.js +453 -0
  179. data/assets/themes/j1/modules/materialize/js/modal.js +382 -0
  180. data/assets/themes/j1/modules/materialize/js/parallax.js +138 -0
  181. data/assets/themes/j1/modules/materialize/js/pushpin.js +145 -0
  182. data/assets/themes/j1/modules/materialize/js/range.js +263 -0
  183. data/assets/themes/j1/modules/materialize/js/ripple.js +335 -0
  184. data/assets/themes/j1/modules/materialize/js/scrollspy.js +295 -0
  185. data/assets/themes/j1/modules/materialize/js/select.js +432 -0
  186. data/assets/themes/j1/modules/materialize/js/sidenav.js +580 -0
  187. data/assets/themes/j1/modules/materialize/js/slider.js +359 -0
  188. data/assets/themes/j1/modules/materialize/js/tabs.js +402 -0
  189. data/assets/themes/j1/modules/materialize/js/tapTarget.js +314 -0
  190. data/assets/themes/j1/modules/materialize/js/timepicker.js +647 -0
  191. data/assets/themes/j1/modules/materialize/js/toasts.js +310 -0
  192. data/assets/themes/j1/modules/materialize/js/tooltip.js +303 -0
  193. data/assets/themes/j1/modules/materialize/js/waves.js +335 -0
  194. data/assets/themes/j1/modules/materialize/scss/components/_badges.scss +55 -0
  195. data/assets/themes/j1/modules/materialize/scss/components/_buttons.scss +322 -0
  196. data/assets/themes/j1/modules/materialize/scss/components/_cards.scss +195 -0
  197. data/assets/themes/j1/modules/materialize/scss/components/_carousel.scss +90 -0
  198. data/assets/themes/j1/modules/materialize/scss/components/_chips.scss +90 -0
  199. data/assets/themes/j1/modules/materialize/scss/components/_collapsible.scss +91 -0
  200. data/assets/themes/j1/modules/materialize/scss/components/_color-classes.scss +32 -0
  201. data/assets/themes/j1/modules/materialize/scss/components/_color-variables.scss +370 -0
  202. data/assets/themes/j1/modules/materialize/scss/components/_datepicker.scss +191 -0
  203. data/assets/themes/j1/modules/materialize/scss/components/_dropdown.scss +85 -0
  204. data/assets/themes/j1/modules/materialize/scss/components/_global.scss +769 -0
  205. data/assets/themes/j1/modules/materialize/scss/components/_grid.scss +156 -0
  206. data/assets/themes/j1/modules/materialize/scss/components/_icons-material-design.scss +5 -0
  207. data/assets/themes/j1/modules/materialize/scss/components/_materialbox.scss +43 -0
  208. data/assets/themes/j1/modules/materialize/scss/components/_modal.scss +94 -0
  209. data/assets/themes/j1/modules/materialize/scss/components/_navbar.scss +208 -0
  210. data/assets/themes/j1/modules/materialize/scss/components/_normalize.scss +447 -0
  211. data/assets/themes/j1/modules/materialize/scss/components/_preloader.scss +334 -0
  212. data/assets/themes/j1/modules/materialize/scss/components/_pulse.scss +34 -0
  213. data/assets/themes/j1/modules/materialize/scss/components/_sidenav.scss +216 -0
  214. data/assets/themes/j1/modules/materialize/scss/components/_slider.scss +92 -0
  215. data/assets/themes/j1/modules/materialize/scss/components/_table_of_contents.scss +33 -0
  216. data/assets/themes/j1/modules/materialize/scss/components/_tabs.scss +99 -0
  217. data/assets/themes/j1/modules/materialize/scss/components/_tapTarget.scss +103 -0
  218. data/assets/themes/j1/modules/materialize/scss/components/_timepicker.scss +183 -0
  219. data/assets/themes/j1/modules/materialize/scss/components/_toast.scss +58 -0
  220. data/assets/themes/j1/modules/materialize/scss/components/_tooltip.scss +32 -0
  221. data/assets/themes/j1/modules/materialize/scss/components/_transitions.scss +13 -0
  222. data/assets/themes/j1/modules/materialize/scss/components/_typography.scss +60 -0
  223. data/assets/themes/j1/modules/materialize/scss/components/_variables.scss +349 -0
  224. data/assets/themes/j1/modules/materialize/scss/components/_waves.scss +114 -0
  225. data/assets/themes/j1/modules/materialize/scss/components/forms/_checkboxes.scss +200 -0
  226. data/assets/themes/j1/modules/materialize/scss/components/forms/_file-input.scss +44 -0
  227. data/assets/themes/j1/modules/materialize/scss/components/forms/_forms.scss +22 -0
  228. data/assets/themes/j1/modules/materialize/scss/components/forms/_input-fields.scss +354 -0
  229. data/assets/themes/j1/modules/materialize/scss/components/forms/_radio-buttons.scss +115 -0
  230. data/assets/themes/j1/modules/materialize/scss/components/forms/_range.scss +161 -0
  231. data/assets/themes/j1/modules/materialize/scss/components/forms/_select.scss +180 -0
  232. data/assets/themes/j1/modules/materialize/scss/components/forms/_switches.scss +89 -0
  233. data/assets/themes/j1/modules/materialize/scss/materialize.scss +41 -0
  234. data/assets/themes/j1/modules/mmenuLight/css/mmenu.css +11 -11
  235. data/assets/themes/j1/modules/mmenuLight/css/theme/uno.min.css +37 -11
  236. data/assets/themes/j1/modules/popper/js/popper.js +1 -1
  237. data/assets/themes/j1/modules/popper/js/popper.js.map +1 -1
  238. data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -1
  239. data/assets/themes/j1/modules/rouge/js/select.js +25 -0
  240. data/assets/themes/j1/modules/rtable/LICENSE +22 -0
  241. data/assets/themes/j1/modules/rtable/README.md +418 -0
  242. data/assets/themes/j1/modules/rtable/css/tablesaw.stackonly.css +148 -0
  243. data/assets/themes/j1/modules/rtable/css/theme/uno.css +191 -0
  244. data/assets/themes/j1/modules/rtable/css/theme/uno.min.css +191 -0
  245. data/assets/themes/j1/modules/rtable/js/rtable.js +692 -0
  246. data/assets/themes/j1/modules/rtable/js/rtable.min.js +690 -0
  247. data/assets/themes/j1/modules/rtable/js/tablesaw-init.js +18 -0
  248. data/assets/themes/j1/modules/rtable/js/tablesaw.stackonly.js +2371 -0
  249. data/assets/themes/j1/modules/{bsThemeSwitcher → themeSwitcher}/js/switcher.js +15 -17
  250. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +26 -0
  251. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +1 -1
  252. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +1 -1
  253. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +2 -2
  254. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +2 -257
  255. data/assets/themes/j1/modules/twemoji/js/twemoji.js +11 -11
  256. data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +11 -12
  257. data/lib/j1/commands/generate.rb +6 -6
  258. data/lib/j1/version.rb +1 -1
  259. data/lib/j1_app/j1_auth_manager/config.rb +2 -2
  260. data/lib/starter_web/Gemfile +12 -16
  261. data/lib/starter_web/_config.yml +162 -22
  262. data/lib/starter_web/_data/apps/carousel.yml +10 -10
  263. data/lib/starter_web/_data/apps/justified_gallery.yml +44 -10
  264. data/lib/starter_web/_data/blocks/banner.yml +32 -27
  265. data/lib/starter_web/_data/blocks/defaults/banner.yml +14 -13
  266. data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -1
  267. data/lib/starter_web/_data/blocks/defaults/panel.yml +3 -2
  268. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  269. data/lib/starter_web/_data/blocks/panel.yml +24 -25
  270. data/lib/starter_web/_data/{template_settings.yml → j1_config.yml} +64 -11
  271. data/lib/starter_web/_data/layouts/home.yml +20 -10
  272. data/lib/starter_web/_data/layouts/page.yml +10 -0
  273. data/lib/starter_web/_data/layouts/post.yml +10 -0
  274. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +3 -1
  275. data/lib/starter_web/_data/modules/defaults/{ssm.yml → fam.yml} +12 -15
  276. data/lib/starter_web/_data/modules/defaults/lunr_search.yml +171 -0
  277. data/lib/starter_web/_data/modules/defaults/navigator.yml +5 -5
  278. data/lib/starter_web/_data/modules/defaults/themer.yml +8 -13
  279. data/lib/starter_web/_data/modules/defaults/toccer.yml +4 -2
  280. data/lib/starter_web/_data/modules/fam.yml +158 -0
  281. data/lib/starter_web/_data/modules/{back2top.yml → lunr_search.yml} +15 -9
  282. data/lib/starter_web/_data/modules/navigator.yml +2 -2
  283. data/lib/starter_web/_data/modules/navigator_menu.yml +16 -10
  284. data/lib/starter_web/_data/modules/themer.yml +0 -18
  285. data/lib/starter_web/_data/modules/toccer.yml +0 -73
  286. data/lib/starter_web/_data/resources.yml +195 -67
  287. data/lib/starter_web/_includes/attributes.asciidoc +194 -0
  288. data/lib/starter_web/_includes/breadcrumbs.html +11 -0
  289. data/lib/starter_web/_includes/documents/licenses/mit.asciidoc +19 -0
  290. data/lib/starter_web/{collections/posts/private → _includes/documents}/readme +0 -0
  291. data/lib/starter_web/_includes/tables/jekyll_variables.asciidoc +45 -0
  292. data/lib/starter_web/_includes/tables/template_variables.asciidoc +46 -0
  293. data/lib/starter_web/_plugins/debug.rb +0 -1
  294. data/lib/starter_web/_plugins/filters.rb +0 -1
  295. data/lib/starter_web/_plugins/{lorem-inline.rb → lorem_inline.rb} +1 -2
  296. data/lib/starter_web/_plugins/lunr_index.rb +313 -0
  297. data/lib/starter_web/_plugins/prettify.rb +0 -3
  298. data/lib/starter_web/_plugins/simple_search_filter.rb +0 -1
  299. data/lib/starter_web/_plugins/symlink_watcher.rb +2 -3
  300. data/lib/starter_web/assets/images/modules/attics/banner/lunr-banner-1280x800.jpg +0 -0
  301. data/lib/starter_web/assets/images/modules/attics/katie-moum-1920x1280.jpg +0 -0
  302. data/lib/starter_web/assets/images/modules/attics/tldr-1920x800.jpg +0 -0
  303. data/lib/starter_web/assets/images/pages/winlogbeat/coordinate-map.png +0 -0
  304. data/lib/starter_web/assets/images/pages/winlogbeat/kibana-powershell.jpg +0 -0
  305. data/lib/starter_web/assets/images/pages/winlogbeat/option_ignore_outgoing.png +0 -0
  306. data/lib/starter_web/assets/images/pages/winlogbeat/winlogbeat-dashboard.png +0 -0
  307. data/lib/starter_web/collections/posts/{protected → private/_posts}/readme +0 -0
  308. data/{assets/README.md → lib/starter_web/collections/posts/protected/_posts/readme} +0 -0
  309. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +77 -80
  310. data/lib/starter_web/collections/posts/public/featured/_posts/2018-05-01-confusion-about-base-url.adoc +21 -10
  311. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +41 -31
  312. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +32 -27
  313. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +38 -0
  314. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/documents/readme +0 -0
  315. data/lib/starter_web/collections/posts/public/featured/_posts/{000_includes → _includes/documents}/unsplash-badge.asciidoc +0 -0
  316. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/tables/readme +0 -0
  317. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +494 -502
  318. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +144 -0
  319. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +146 -0
  320. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +146 -0
  321. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +146 -0
  322. data/lib/starter_web/collections/posts/public/{featured/_posts/000_includes → series/_posts/_includes}/attributes.asciidoc +8 -18
  323. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/documents/100-docker-using-shared-folders.asciidoc +0 -0
  324. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/documents/loop.sh +0 -0
  325. data/lib/starter_web/collections/posts/public/series/_posts/{000_includes → _includes}/tables/debug_variables.asciidoc +0 -0
  326. data/lib/starter_web/collections/posts/public/test_posts/_posts/2020-09-11-test_post.adoc +218 -0
  327. data/lib/starter_web/collections/posts/public/{wikipedia/_posts/000_includes → test_posts/_posts/_includes}/attributes.asciidoc +9 -21
  328. data/lib/starter_web/collections/posts/public/test_posts/_posts/_includes/documents/readme +0 -0
  329. data/lib/starter_web/collections/posts/public/{wikipedia/_posts/000_includes → test_posts/_posts/_includes}/tables/debug_variables.asciidoc +0 -0
  330. data/lib/starter_web/collections/posts/public/test_posts/_posts/_includes/tables/readme +0 -0
  331. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +16 -8
  332. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +2 -7
  333. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +2 -6
  334. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/attributes.asciidoc +37 -0
  335. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/documents/readme +0 -0
  336. data/lib/starter_web/collections/posts/public/wikipedia/_posts/_includes/tables/readme +0 -0
  337. data/lib/starter_web/index.html +16 -10
  338. data/lib/starter_web/package.json +5 -2
  339. data/lib/starter_web/pages/protected/site_search.adoc +8 -19
  340. data/lib/starter_web/pages/public/about/about_site.adoc +0 -2
  341. data/lib/starter_web/pages/public/about/become_a_patron.adoc +1 -3
  342. data/lib/starter_web/pages/public/blog/navigator/archive.html +34 -9
  343. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +40 -16
  344. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +32 -8
  345. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +8 -4
  346. data/lib/starter_web/pages/public/blog/navigator/index.html +6 -3
  347. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +15 -21
  348. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +32 -27
  349. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +32 -27
  350. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → _includes}/attributes.asciidoc +15 -13
  351. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/100_meet_and_greet_jekyll.asciidoc +31 -0
  352. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → _includes}/documents/200_preparations.asciidoc +0 -0
  353. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → _includes}/documents/300_first_awesome_web.asciidoc +0 -0
  354. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → _includes}/parts.asciidoc +1 -1
  355. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/debug_variables.asciidoc +48 -0
  356. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/readme +0 -0
  357. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +76 -111
  358. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +37 -45
  359. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +51 -63
  360. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +74 -80
  361. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +64 -84
  362. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +34 -42
  363. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +281 -91
  364. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +138 -52
  365. data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +236 -0
  366. data/lib/starter_web/pages/public/learn/roundtrip/610_fam.adoc +294 -0
  367. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/attributes.asciidoc +10 -29
  368. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +28 -0
  369. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_bottom_info.asciidoc +2 -2
  370. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_bottom_left_warning.asciidoc +2 -2
  371. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_bottom_right_danger.asciidoc +2 -2
  372. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_central_success.asciidoc +2 -2
  373. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_full_height_left_info.asciidoc +2 -2
  374. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_full_height_right_success.asciidoc +2 -2
  375. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_table_3_column.asciidoc +1 -1
  376. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_top_info.asciidoc +2 -2
  377. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_top_left_info.asciidoc +2 -2
  378. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/410_top_right_success.asciidoc +2 -2
  379. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → _includes}/documents/419_advanced_modals_demo.asciidoc +16 -16
  380. data/lib/starter_web/pages/public/learn/roundtrip/_includes/tables/readme +0 -0
  381. data/lib/starter_web/pages/public/learn/{whats_up.adoc → where_to_go.adoc} +31 -46
  382. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -2
  383. data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +2 -1
  384. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +7 -12
  385. data/lib/starter_web/pages/public/legal/de/400_license_agreement.adoc +2 -1
  386. data/lib/starter_web/pages/public/legal/de/500_support.adoc +2 -1
  387. data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +32 -28
  388. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +12 -8
  389. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +17 -12
  390. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +38 -36
  391. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +15 -6
  392. data/lib/starter_web/pages/public/legal/en/500_support.adoc +12 -4
  393. data/lib/starter_web/pages/public/legal/en/eu/cookie.policy.asciidoc +1 -1
  394. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +68 -68
  395. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/attributes.asciidoc +22 -8
  396. data/lib/starter_web/pages/public/previewer/_includes/documents/licenses/mit.asciidoc +19 -0
  397. data/lib/starter_web/pages/public/previewer/_includes/documents/readme +0 -0
  398. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  399. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  400. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/120_relative_sizes.asciidoc +1 -1
  401. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/200_rotate.asciidoc +1 -1
  402. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/300_flip.asciidoc +1 -1
  403. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/400_spin_pulsed.asciidoc +1 -1
  404. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  405. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  406. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  407. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  408. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  409. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  410. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  411. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  412. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/twitter_emoji/300_flip.asciidoc +1 -1
  413. data/lib/starter_web/pages/public/previewer/{000_includes → _includes}/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  414. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +860 -595
  415. data/lib/starter_web/pages/public/previewer/iframer.adoc +48 -41
  416. data/lib/starter_web/pages/public/previewer/justified_gallery.html +15 -7
  417. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +21 -26
  418. data/lib/starter_web/pages/public/previewer/rouge.adoc +205 -0
  419. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +21 -27
  420. data/lib/starter_web/pages/public/test_pages/_includes/attributes.asciidoc +49 -0
  421. data/lib/starter_web/pages/public/{learn/roundtrip/000_includes → test_pages/_includes}/documents/100_gistblock.asciidoc +0 -0
  422. data/lib/starter_web/pages/public/test_pages/_includes/tables/000_bem_specifiers.asciidoc +22 -0
  423. data/lib/starter_web/pages/public/test_pages/_includes/tables/000_specifier_examples.asciidoc +56 -0
  424. data/lib/starter_web/pages/public/test_pages/breadcrumbs_tester.adoc +62 -0
  425. data/lib/starter_web/pages/public/test_pages/carousel_captions.adoc +1045 -0
  426. data/lib/starter_web/pages/public/test_pages/deck_of_posts.adoc +165 -0
  427. data/lib/starter_web/pages/public/test_pages/floating_actions_button.adoc +523 -0
  428. data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_ad.adoc +8 -21
  429. data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_div.adoc +25 -38
  430. data/lib/starter_web/pages/public/test_pages/lunr_tester.adoc +89 -0
  431. data/lib/starter_web/pages/public/{000_nav_pagination_tester.adoc → test_pages/nav_pagination_tester.adoc} +9 -22
  432. data/lib/starter_web/pages/public/test_pages/page_attribute_tester.adoc +196 -0
  433. data/lib/starter_web/pages/public/test_pages/responsive_images.adoc +213 -0
  434. data/lib/starter_web/pages/public/test_pages/responsive_tables.adoc +210 -0
  435. data/lib/starter_web/pages/public/test_pages/toccer_tester.adoc +2245 -0
  436. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/attributes.asciidoc +0 -0
  437. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/100_gistblock.asciidoc +0 -0
  438. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_info.asciidoc +0 -0
  439. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +0 -0
  440. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +0 -0
  441. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_central_success.asciidoc +0 -0
  442. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +0 -0
  443. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +0 -0
  444. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_table_3_column.asciidoc +1 -1
  445. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_info.asciidoc +0 -0
  446. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_left_info.asciidoc +0 -0
  447. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/410_top_right_success.asciidoc +0 -0
  448. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +0 -0
  449. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/000_test_youtube_video.adoc +0 -0
  450. data/lib/starter_web/pages/public/{learn → test_pages}/vtutorials/100_basic_video.adoc +0 -0
  451. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  452. data/lib/starter_web/utilsrv/package.json +1 -1
  453. metadata +261 -146
  454. data/assets/data/jupyter/notebooks/_html/template.full.head.html +0 -75
  455. data/assets/data/jupyter/notebooks/_html/visualisation.html +0 -968
  456. data/assets/data/jupyter/notebooks/html/template.html +0 -50
  457. data/assets/data/jupyter/notebooks/html/visualisation.ok.html +0 -949
  458. data/assets/data/jupyter/notebooks/tutorial.ipynb +0 -169
  459. data/assets/data/jupyter/notebooks/visualisation.ipynb +0 -9413
  460. data/assets/data/search.json +0 -165
  461. data/assets/data/ssm.html +0 -242
  462. data/assets/themes/j1/adapter/js/back2top.js +0 -233
  463. data/assets/themes/j1/core/css/theme-extensions.min.css +0 -1
  464. data/assets/themes/j1/core/css/uno-dark.min.css +0 -6
  465. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js.org +0 -1
  466. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css +0 -10278
  467. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css.map +0 -1
  468. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css +0 -7
  469. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css.map +0 -1
  470. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +0 -4420
  471. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js.map +0 -1
  472. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +0 -7
  473. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +0 -1
  474. data/assets/themes/j1/modules/bsDatepicker/css/datepicker.css +0 -203
  475. data/assets/themes/j1/modules/bsDatepicker/css/theme/uno.css +0 -235
  476. data/assets/themes/j1/modules/bsDatepicker/js/datepicker.js +0 -509
  477. data/assets/themes/j1/modules/bsDatepicker/less/datepicker.less +0 -122
  478. data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js +0 -20
  479. data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.js +0 -468
  480. data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.min.js +0 -6
  481. data/assets/themes/j1/modules/jqMouseWheel/README.md +0 -76
  482. data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.js +0 -221
  483. data/assets/themes/j1/modules/jqMouseWheel/js/jquery.mousewheel.min.js +0 -9
  484. data/assets/themes/j1/modules/noUISlider/LICENSE +0 -13
  485. data/assets/themes/j1/modules/noUISlider/css/nouislider.css +0 -260
  486. data/assets/themes/j1/modules/noUISlider/css/nouislider.min.css +0 -1
  487. data/assets/themes/j1/modules/noUISlider/js/nouislider.js +0 -2312
  488. data/assets/themes/j1/modules/noUISlider/js/nouislider.min.js +0 -3
  489. data/assets/themes/j1/modules/polyfills/js/msie.js +0 -140
  490. data/assets/themes/j1/modules/tocbot/css/theme/uno.css +0 -89
  491. data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +0 -89
  492. data/assets/themes/j1/modules/tocbot/css/tocbot.css +0 -75
  493. data/assets/themes/j1/modules/tocbot/css/tocbot.min.css +0 -19
  494. data/assets/themes/j1/modules/tocbot/js/tocbot.js +0 -19
  495. data/assets/themes/j1/modules/tocbot/js/tocbot.min.js +0 -19
  496. data/lib/starter_web/_data/modules/defaults/back2top.yml +0 -146
  497. data/lib/starter_web/_data/modules/defaults/cookie_consent.yml +0 -132
  498. data/lib/starter_web/_data/modules/defaults/stickybits.yml +0 -36
  499. data/lib/starter_web/_data/modules/ssm.yml +0 -142
  500. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  501. data/lib/starter_web/collections/posts/public/series/_posts/000_includes/attributes.asciidoc +0 -66
  502. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/000_includes/documents/100_meet_and_greet_jekyll.asciidoc +0 -31
  503. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/000_includes/attributes.asciidoc +0 -69
  504. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/000_includes/documents/100_buttons.asciidoc +0 -170
  505. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/mdb_previewer.adoc +0 -52
  506. data/lib/starter_web/pages/public/learn/roundtrip/bs_tour.js +0 -98
@@ -1,16 +1,18 @@
1
1
  ---
2
2
  title: Cookies
3
3
  tagline: good to know
4
- description: Useful info on cookies and how they used
4
+ date: 2019-06-01 00:00:00
5
+ description: >
6
+ Useful info on cookies and how they used
7
+
8
+ tags: [ About, Cookies ]
9
+ categories: [ Featured ]
5
10
 
6
- date: 2019-06-01 00:00:00 +0200
7
11
  series:
8
12
  adsense: false
9
13
  image: /assets/images/modules/attics/cookies-1920x1200-bw.jpg
10
-
11
- tags: [ About, Cookies ]
12
- index: [ Cookie, Usage, Type, Policy, Consent ]
13
- categories: []
14
+ comments: true
15
+ advertising: true
14
16
 
15
17
  regenerate: false
16
18
 
@@ -32,50 +34,53 @@ resource_options:
32
34
  href: https://unsplash.com/@miroslava
33
35
  ---
34
36
 
35
- // TODO: For POSTS, currently the include:: macro does NOT work.
36
- // Path calculation needes to be fixec (includes the document file name)
37
- // -----------------------------------------------------------------------------
38
-
39
- // NOTE
40
- // -----------------------------------------------------------------------------
41
- // See: http://ec.europa.eu/ipg/basics/legal/cookies/index_en.htm
37
+ // Page Initializer
38
+ // =============================================================================
39
+ // Enable the Liquid Preprocessor
40
+ :page-liquid:
42
41
 
43
- // NOTE: General Asciidoc page attributes settings
42
+ // Set page (local) attributes here
44
43
  // -----------------------------------------------------------------------------
45
- :page-liquid:
44
+ // :page--attr: <attr-value>
46
45
 
47
46
  // Additional Asciidoc page attributes goes here
48
47
  // -----------------------------------------------------------------------------
49
48
  // :page-imagesdir: {{page.images.dir}}
50
49
 
51
-
52
- // NOTE: Place an excerpt at the most top position
50
+ // Place an excerpt at the most top position
53
51
  // -----------------------------------------------------------------------------
54
- Is it needed for vistors to know what cookies are all about?
52
+ Is it needed for visitors to know what cookies are all about?
55
53
 
56
- Not first place. Cookies are widely used. All users visting web sites are
57
- bothered all the time to accept on cookies. Because cookies are used that often.
54
+ Not the first place. Cookies are widely used. All users visiting web sites are
55
+ bothered all the time to accept cookies. Because cookies are used that often.
58
56
  For good reasons - but for *different* reasons.
59
57
 
60
58
  To answer the question: yes, you should.
61
59
 
62
- All people are part of the *real* and virtual worlds as well; the internet
63
- for example. In real world you've learned what cookies are. You can simply
64
- *see* them, smell them and eat some. In real world cookies are *real*, you
65
- know sweets from earliest days.
60
+ All people are part of the *real* and virtual worlds as well; the internet,
61
+ for example. In the real world, you've learned what cookies are. You can simply
62
+ *see* them, smell them and eat some. For physical cookies, you know them as
63
+ sweets from earliest days.
66
64
 
67
65
  But cookies in the digital world are different. Cookies in the sense of the
68
- internet, of the web are *not* dangerous but not nessearily a sort of sweets
66
+ internet, of the web are *not* dangerous but not necessarily a sort of sweets
69
67
  to enjoy people.
70
68
 
71
69
  [role="clearfix mb-3"]
72
70
  excerpt__end
73
71
 
72
+ // Load Liquid procedures
73
+ // -----------------------------------------------------------------------------
74
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
74
75
 
75
- // Page content
76
+ // Load page attributes
76
77
  // -----------------------------------------------------------------------------
77
- [[readmore]]
78
+ {% include {{load_attributes}} scope="none" %}
79
+
78
80
 
81
+ // Page content
82
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83
+ [[readmore]]
79
84
  == What are cookies technically
80
85
 
81
86
  [role="mb-3"]
@@ -0,0 +1,38 @@
1
+ // ~/document_base_folder/000_includes
2
+ // Asciidoc attribute includes: attributes.asciidoc
3
+ // -----------------------------------------------------------------------------
4
+
5
+
6
+ // URLS, local references to internal|external web links (macro link:)
7
+ // -----------------------------------------------------------------------------
8
+ tag::urls[]
9
+ end::urls[]
10
+
11
+
12
+ // TAGS, local asciidoc attributes (general variables)
13
+ // -----------------------------------------------------------------------------
14
+ tag::tags[]
15
+ end::tags[]
16
+
17
+
18
+ // DATA, local references to data elements (asciidoc extensions)
19
+ // -----------------------------------------------------------------------------
20
+ tag::data[]
21
+ end::data[]
22
+
23
+ // DOCUMENTS, local document resources (macro include::)
24
+ // -----------------------------------------------------------------------------
25
+ tag::documents[]
26
+ end::documents[]
27
+
28
+
29
+ // TABLES, local table resources (macro include::)
30
+ // -----------------------------------------------------------------------------
31
+ tag::tables[]
32
+ end::tables[]
33
+
34
+
35
+ // AUTHORS, local author information (special variables)
36
+ // -----------------------------------------------------------------------------
37
+ tag::authors[]
38
+ end::authors[]
@@ -1,502 +1,494 @@
1
- ---
2
- title: Using Docker
3
- tagline: docker on windows
4
- description: Docker on Windows
5
-
6
- date: 2018-11-01 00:00:00 +0100
7
- series: Docker
8
- adsense: false
9
- comments: false
10
- toc: true
11
-
12
- tags: [ Tutorial, kickstarter ]
13
- index: [ Docker, Windows, Shared, Folder, Folders ]
14
- categories: []
15
-
16
- regenerate: false
17
-
18
- resources: []
19
- resource_options:
20
- - toccer:
21
- collapseDepth: 3
22
- - attic:
23
- padding_top: 400
24
- padding_bottom: 50
25
- opacity: 0.5
26
- slides:
27
- - url: /assets/images/modules/attics/banner/docker-1280x600-bw.jpg
28
- alt: docker_banner_r-1280x500-bw
29
- ---
30
-
31
- // NOTE: General Asciidoc page attributes settings
32
- // -----------------------------------------------------------------------------
33
- :page-liquid:
34
-
35
-
36
- // Additional Asciidoc page attributes goes here
37
- // -----------------------------------------------------------------------------
38
- :page-imagesdir: {{page.images.dir}}/j1_using_docker
39
-
40
- // Place an excerpt at the most top position
41
- // -----------------------------------------------------------------------------
42
- How to run Docker smooth on Windows? Sounds like a quite simple question
43
- follwed by a simple answer: go for *Docker for Windows*. Unfortunately,
44
- the answer is *not* that easy. As often: it depends (on the use case).
45
-
46
- [role="clearfix mb-3"]
47
- excerpt__end
48
-
49
- // Liquid procedures
50
- // -----------------------------------------------------------------------------
51
- {% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%}
52
-
53
- // Initialize entry document paths
54
- //
55
- {% include {{set_env_entry_document}} init_folders=all %}
56
-
57
- // Load tags and urls
58
- //
59
- include::{includedir}/attributes.asciidoc[tag=tags]
60
- include::{includedir}/attributes.asciidoc[tag=urls]
61
- include::{includedir}/attributes.asciidoc[tag=data]
62
-
63
- // Additional debug output (if :debug: set to true)
64
- // -----------------------------------------------------------------------------
65
- :debug: false
66
- include::{tabledir}/debug_variables.asciidoc[]
67
-
68
- // Page content
69
- // -----------------------------------------------------------------------------
70
- //include::{documentsdir}/100-docker-using-shared-folders.asciidoc[]
71
-
72
-
73
- [[readmore]]
74
- == Docker smooth on Windows
75
-
76
- // [role="mb-3"]
77
- // image::/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png[{{page.title}}]
78
-
79
- In general, two incarnations of Docker for Windows are available:
80
-
81
- * Legacy solution: *Docker Toolbox*
82
- * Native solution: *Docker for Windows*
83
-
84
- Before the native version of Docker *Docker for Windows* was available,
85
- a *cross-platform* solution called *Docker Toolbox* could be used.
86
- *Docker Toolbox* is a bundle of *current* Docker software based on
87
- *Docker Machine* combined with the *Docker Engine* bundled with
88
- *VirtualBox* as a Hypervisor to run Linux boxes as virtual machines
89
- on Windows.
90
-
91
- What the Docker team recomments: Update to the newer package, if possible.
92
- This should be discussed, especially for Windows, in more detail ...
93
-
94
- [WARNING]
95
- ====
96
- *The Docker Team mentions the following about Docker Toolbox:*
97
-
98
- Docker Toolbox is for *older Windows* systems (or *Apple MacOS* versions)
99
- that *does not meet* the requirements of the *native* Docker version.
100
- ====
101
-
102
- Docker won't never run *natively* on Windows. The *Container Technology*
103
- used by Docker depends on *Linux* (at least on a Unix flavour of the host
104
- operating system). For all non-Linux (or Unix) platforms, a *Hypervisor* is
105
- needed to make it possible to run the needed *Linux OS* for Docker.
106
-
107
- Yes, Windows support a *native* Hypervisor layer: `Hyper-V`. Using the Windows
108
- component `Hyper-V`, any operating system can be run as *virtual machines* on
109
- Windows. But it should be kept in mind: the Hypervisor layer is *always* needed;
110
- as well as for the so-called the *native* Docker version on Windows. But:
111
- real *native* Docker versions does *not* need a Hypervisor layer; they run
112
- containers direcly on the host OS! This should be kept on mind.
113
-
114
- They are some pittfals using *Docker for Windows* if you go for:
115
-
116
- * Stability - found quite often issues running containers on *Docker for Windows*.
117
- If you're not a Windows specialist, it is hard to findout issues for `Hyper-V`
118
- , the VM and|or both.
119
- * Flexibility - it is *NOT* possible to use the Hypervisor `Hyper-V` in
120
- parallel to *VirtualBox* as an alternative
121
- * Incompatibility - on some Windows installations, and for sure they met the
122
- requirements of the *native* Docker version, the installaton was *NOT*
123
- successful and Docker fails to start
124
-
125
- Again: the software included in the *Docker Toolbox* are *current* versions.
126
- The latest Toolbox contains:
127
-
128
- * the Docker Engine Docker, version 18.03.0-ce, build 0520e24302
129
- * the Docker Machine, version 0.14.0, build 89b8332
130
- * the Docker Composer, version 1.20.1, build 5d8c71b2
131
- * a current MINGW64-based GNU bash, version 4.4.19(2)-release (x86_64-pc-msys)
132
-
133
- For all the people having their (IT) roots on Unix respectively Linux, the
134
- *Docker Toolbox* is the better solution on Windows (for now). No need to go
135
- for the Windows Hypervisor `Hyper-V` - Oracle *VirtualBox* can be used
136
- instead; as quite often used for testing and development.
137
-
138
- Let's have a look how to *Manage Linux on Windows*, to use Docker on the
139
- Windows platform.
140
-
141
- == Installing Docker Toolbox
142
-
143
- As discussed ealier, *Docker Toolbox* is using *VirtualBox* for the
144
- Hypervisor to create the Linux VMs needed. To get the latest version,
145
- install VirtualBox first (Docker Toolbox includes a installer package
146
- for VBox but not nessesarily at their latets version).
147
-
148
- Go for the link:{virtualbox-install-on-windows}[VirtualBox Download Page]
149
- and select under *VirtualBox 5.x.y platform packages* the latest version
150
- for Windows (Windows hosts). Install the package - the installation process
151
- is quite simple supported by an build in installer wizard.
152
-
153
- If done, go for the installation of the Toolbox. A current package can be
154
- retrieved from link:{docker-install-toolbox-on-windows}[Docker Documents].
155
- The page includes all the info needed to install the software.
156
-
157
- NOTE: For the installation of the *Docker Toolbox*, please deselect the
158
- installation of *VirtualBox* included as the software has been already
159
- installed.
160
-
161
- NOTE: The commandline interface used by *Docker Toolbox* is based on
162
- *Git MSYS-git UNIX tools*. If you have *Git* installed already for your
163
- Windows host, please deselect the installation of *Git* included.
164
-
165
- *Docker Toolbox* comes with *NO* graphical user interface (GUI). To manage
166
- Docker, the included GNU bash of the *Git MSYS-git UNIX tools* shoud be used.
167
- A very first version of a (native) Docker UI on Windows is *Kitematic*,
168
- currently in a alpha version included.
169
-
170
- ifdef::backend-html5[]
171
- .Docker UI Kinematic on Windows
172
- lightbox::docker-windows-kinematic-alpha[800, {data-docker-windows-kinematic-alpha}]
173
- endif::[]
174
-
175
- TIP: You should check *Kitematic*. If started for *Docker Toolbox* on Windows,
176
- change (the Hypervisor) to Virtualbox.
177
-
178
- For Windows users a commandline interface to manage a complex system like
179
- Docker may sound a bit stone age. It's not for good reasons:
180
-
181
- * the knowlegde of the base Docker commands is essential to understand the
182
- Container Technology better
183
-
184
- * Blalal blaaa
185
-
186
-
187
-
188
- == Manage Linux on Windows
189
-
190
- VirtualBox is a greate piece of software for desktop and workstation
191
- virtualization. A huge number of IT specialist and developers are using VB
192
- for: testing and development environments. Sometimes for production
193
- environments if it's applicable.
194
-
195
- One good idea for VirtualBox is, if you are Web|App developer for Linux you
196
- can keep *Windows* as your primary OS - yeah, yeah those people are living on
197
- our planet! One can install a Linux distribution of choice in VirtualBox VM
198
- and reap both benefits of Windows as primary OS and Linux as a server
199
- platform for good reasons.
200
-
201
- === Create a Linux VM
202
-
203
- lorem:sentences[5]
204
-
205
- lorem:sentences[3]
206
-
207
-
208
- === Sharing Data
209
-
210
- For (real) native Docker installations, it is easy to share data between then
211
- host OS and containers managed by Docker. It is simple this:
212
-
213
- [source, sh]
214
- ----
215
- docker run --rm \
216
- --volume=$PWD:/srv/jekyll \
217
- -p 35729:35729 -p 40000:40000 \
218
- -it jekyll-one/j1:latest \
219
- j1 serve --incremental --livereload
220
- ----
221
-
222
- The container, instructed by `--volume=$PWD:/srv/jekyll` shares the
223
- filesystem of the host - the *native* way to bring in data into a
224
- container for processing. In the example a static Jekyll Web is created
225
- by J1 Template (j1), served by the ports 35729 for livereload and 40000
226
- serving the web.
227
-
228
- For the Windows platform, using a virtual Linux Box for Docker containers,
229
- this is *NOT* possible. The virtual system is managed by Virtualbox and no
230
- direct relationship is in between the VBox and the host operating system
231
- Windows! No (direct) access to the host filesystem is possible. Bad luck so
232
- far.
233
-
234
- Generally spoken, there are 3 ways of sharing files between a Windows host
235
- and Linux guest boxes; keep files:
236
-
237
- * in the guest (Linux) and share them with host through Samba
238
- * on host (Windows) and use VirtualBox *Shared Folders*
239
- * on host (Windows) and mount Windows *Public Folders* via CIFS
240
- from within guest (Linux)
241
-
242
- For all people experienced on the Linux platform, the first option is
243
- probably the easiest. But it has it’s drawbacks. In most cases for testing,
244
- it's *NOT* wanted to keep files in a VM. In case of corruption of the VM,
245
- reinstallation needs, or whatever yor data is *lost* in most cases. Truly,
246
- not an option.
247
-
248
- Typically developers want them kept on native Windows *disks* as they are
249
- expected as more safely stored on physical devices and easier to backup.
250
- So first option is clearly out.
251
-
252
- *Shared Folders* are really a great idea. After installing the *VirtualBox
253
- Guest Additions* (which brings the mount.vboxsf binary and vboxsf kernel
254
- module) the guest can mount automatically a Windows OS folder inside the VM.
255
- Some klicks further the guest start's, mount the *shared folder* in guest and
256
- voila: you're done! Sounds really great.
257
-
258
- But there's a catch performance. Shared Folders are really, really horrible
259
- slow. Which in turn kills the idea of programming and testing code without
260
- loosing hair because of the slowness. You can find tons of articles around
261
- slow shared folders on the Internet; both for the Big Dogs: VMware and
262
- VirtualBox. But no solution. Since decades.
263
-
264
- Analyzing the performance, it's obvious that kernel spends really large
265
- amount of time in IO mode – so the vboxsf CIFS emulation of VirtualBoxis
266
- behaving something like a slug. Birds love slugs but IT professionals don’t
267
- like that, do they?
268
-
269
- It seems that the only viable solution is sharing folders though Windows and
270
- mounting them via CIFS on the guest, the virtual Linux box. This way, a
271
- similiar flexible solution for sharing folders can be achived but at a much
272
- better performance.
273
-
274
-
275
- === Performance tests
276
-
277
- Anyway, *shared folders* will be always slow as the are of type *NAS* - network
278
- attached storage. For a local network nowadays, typically at Gigabit level and
279
- quite low in latency, an acceptable performance cab be achived.
280
-
281
- I did some simple tests to show the performance differences. There are three
282
- directories I did for my tests:
283
-
284
- * /mnt/media/repo1, data on a physical (local) disk on the host
285
- * /mnt/media/repo2, data on a physical (local) disk in the guest
286
- * /mnt/media/repo3, data on a Windows share mounted via cifs in the guest
287
-
288
- I've been using simple (bash) script based on *dd* commands for testing.
289
- The *dd* commands used as a base are shown below. For sure not a quite
290
- sophisticated test scenario but it's giving a general impression what can
291
- achived in real world.
292
-
293
- NOTE: For multi-platform testing, on Windows the `dd` command is used as well.
294
- For *Docker Toolbox*, beside the GNU bash, a full set of *GNU CoreUtils* are
295
- available as well (accessible out of the *Docker Quickstart Terminal*). The
296
- used (bash) test script needs to be run out of *Docker Quickstart Terminal*.
297
- Download the tester script from here.
298
-
299
- The test script *docker_perf_test.sh* supports a test scenario for
300
- *General System Performance*. This is focussing on pure CPU|Memory power.
301
- On both systems (host and guest) these tests are using pure *kernel services*
302
- for creating input and output data. One is creating random input data as
303
- fast as possible, the other discards everything it gets as fast as it can.
304
-
305
- .General System Performance
306
- [source, sh]
307
- ----
308
- dd if=/dev/urandom of=/dev/null bs=1M count=10000
309
- ----
310
-
311
- Please see those tests for *General System Performance* for the background
312
- *What could be achived in therory*. These tests may helpful to compare your
313
- current setup for the host and the guest same way.
314
-
315
- As mentioned, all tests for *docker_perf_test.sh* are based on the `dd`
316
- command. For *real world* measures, standard *dd tests* are used. You'll
317
- find a lot of those on the Internet. All tests for *docker_perf_test.sh* are
318
- changed (from `/dev/zero`) to `/dev/urandom` for the input to put some
319
- *pressure* on the CPU while processing data for reading or writing from the
320
- filesystem to be checked. All the tests are *rules of thumb*, no technical
321
- measures.
322
-
323
- NOTE: Zum Messen der Schreibperformance liest man die zu Schreibenden
324
- Daten am besten aus /dev/zero und schreibt eine normale Datei im Filesystem
325
- (z.B. mit of=/root/testfile). Die folgenden Beispiele verwenden ein Testdatei,
326
- um irrtümlichen Datenverlust zu vermeiden. Die dabei erzielbare Performance
327
- Werte sind etwas geringer (da dadurch auch Metadaten im Filesystem geschrieben
328
- werden).
329
-
330
- Find the base `dd` commands for read an write performance tests below. The
331
- exported shared folder on Windows is *C:\Users\Public* mapped to the Unix
332
- (POSIX) folder scheme of */c/Users/Public* on the guest OS.
333
-
334
- .Write Performance - Windows host (local disk), Linux guest (shared disk)
335
- [source, sh]
336
- ----
337
- dd if=/dev/urandom bs=1M count=1024 | split -b 1M - name.
338
- ----
339
- .Write Performance (local disk), Linux guest
340
- [source, sh]
341
- ----
342
- dd if=/dev/urandom of=/var/tmp/test/samplefile bs=1M count=1024
343
- ----
344
-
345
- .Read Performance - Windows host (local disk), Linux guest (shared disk)
346
- [source, sh]
347
- ----
348
- dd if=/c/Users/Public/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
349
- ----
350
- .Read Performance (local disk), Linux guest
351
- [source, sh]
352
- ----
353
- dd if=/var/tmp/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
354
- ----
355
-
356
- Have a look at the table below for the measures found on a *Windows 10*
357
- desktop host (Intel Core Quad Q9550) using a *SATA-300* disk for the local
358
- physical disk and a Gigabit network interface (*Realtek PCIe GBE* familiy)
359
- running a *CentOS 7 Linux* (version 3.10.0-862) as a guest:
360
-
361
- .Data transfer rates for 1 GB of data
362
- [cols="2,2,4,3, options="header", role="table-responsive, full-width"]
363
- |===============================================================================
364
- |direction |mountpoint |source |througput [MB/s]
365
-
366
- |`read`
367
- |/mnt/media/repo1
368
- |physical (local) disk on the *host*
369
- |85.20
370
-
371
- |`read`
372
- |/mnt/media/repo2
373
- |physical (local) disk on the *guest*
374
- |147.00
375
-
376
- |`read`
377
- |/mnt/media/repo3
378
- |shared disk on the *guest*
379
- |30.3
380
-
381
- |`write`
382
- |/mnt/media/repo1
383
- |physical (local) disk on the *host*
384
- |234.00
385
-
386
- |`write`
387
- |/mnt/media/repo2
388
- |physical (local) disk on the *guest*
389
- |34.00
390
-
391
- |`write`
392
- |/mnt/media/repo3
393
- |shared disk on the *guest*
394
- |39.9
395
-
396
- |===============================================================================
397
-
398
- WARNING: Bei Verwendung von if=/dev/zero und bs=1G benötigt das Linuxsystem
399
- 1GB freien Platz im RAM. Falls Ihr Testsystem nicht ausreichend RAM ...
400
-
401
- NOTE: Um praxisnahe Ergebnisse zu erhalten empfehlen wir die beschrieben Tests
402
- mehrmals (z.B. 3 bis 10x) durchzuführen. Damit können Sie Ausreißer rechtzeitig
403
- erkennen.
404
-
405
-
406
- lorem:sentences[5]
407
-
408
- == Publish a Shared Folder
409
-
410
- lorem:sentences[5]
411
-
412
- lorem:sentences[3]
413
-
414
-
415
- == Mount Shared Folders on Linux
416
-
417
- lorem:sentences[5]
418
-
419
- === Installing CIFS
420
-
421
- For the Linux VM, a current Ubunt Server of version 18.06 is used. To mount
422
- CIFS shares, the package `cifs-utils` needs to be installed:
423
-
424
- [source, bash]
425
- ----
426
- sudo apt-get -y install cifs-utils
427
- ----
428
-
429
- Mounting filesystems in general, therefor the same to the CIFS share, are
430
- done as root. This ends up in the situation this folder cannot (accessed??)
431
- written as normal user.
432
-
433
- . Create the `cifs` group
434
- +
435
- [source, bash]
436
- ----
437
- sudo groupadd cifs
438
- ----
439
-
440
- [start=2]
441
- . Add your user to the `cifs` group
442
- +
443
- [source, bash]
444
- ----
445
- sudo usermod -aG cifs $USER
446
- ----
447
-
448
- [start=3]
449
- . Create the mountpoint (to be used by Docker) as root
450
- +
451
- [source, bash]
452
- ----
453
- mkdir -p /c/Users/Public
454
- ----
455
-
456
- [start=4]
457
- . Change the ownership of the mountpoint
458
- +
459
- [source, bash]
460
- ----
461
- chown -R root:cifs /c/Users/Public
462
- ----
463
-
464
- [start=5]
465
- . Create a credentials file to place user|password data safe.
466
- +
467
- [source, bash]
468
- ----
469
- touch ~/.smbcredentials
470
- ----
471
-
472
- .smbcredentials
473
- ----
474
- username=<your_windows_user>
475
- password=<windows_user_password>
476
- ----
477
-
478
- === Mount the share manually
479
-
480
- To enable non-authorized users to read and write the shared files, specify
481
- user and group ID that the mounted shares folders should use. This would
482
- allow particular users and group members to read|write to the share.
483
-
484
- To do so, the following options are used for a public mount:
485
-
486
- * username
487
- * password
488
- * uid
489
- * gid
490
-
491
- Add the Windows host IP address to the hosts file
492
-
493
- ./etc/hosts
494
- <ip_v4_address> <name_of_the windows_box> <alias_name>
495
-
496
-
497
- === Mount the share at boot-time
498
-
499
- lorem:sentences[3]
500
-
501
- ./etc/fstab
502
- &#47;&#47;win10pc/Public /c/Users/Public cifs uid=1000,gid=5555,credentials=/home/jadams/.smbcredentials,iocharset=utf8,rw 0 0
1
+ ---
2
+ title: Using Docker
3
+ tagline: docker on windows
4
+ date: 2018-11-01 00:00:00
5
+ description: >
6
+ Docker on Windows
7
+
8
+ tags: [ Tutorial, Kickstarter ]
9
+ categories: [ Series ]
10
+
11
+ series: Docker
12
+ adsense: false
13
+ comments: false
14
+ toc: true
15
+ exclude_from_search: true
16
+
17
+ regenerate: false
18
+
19
+ resources: []
20
+ resource_options:
21
+ - toccer:
22
+ collapseDepth: 3
23
+ - attic:
24
+ padding_top: 400
25
+ padding_bottom: 50
26
+ opacity: 0.5
27
+ slides:
28
+ - url: /assets/images/modules/attics/banner/docker-1280x600-bw.jpg
29
+ alt: docker_banner_r-1280x500-bw
30
+ ---
31
+
32
+ // Page Initializer
33
+ // =============================================================================
34
+ // Enable the Liquid Preprocessor
35
+ :page-liquid:
36
+
37
+ // Set page (local) attributes here
38
+ // -----------------------------------------------------------------------------
39
+ // :page--attr: <attr-value>
40
+ :debug: false
41
+ :page-imagesdir: {{page.images.dir}}/j1_using_docker
42
+
43
+ // Place an excerpt at the most top position
44
+ // -----------------------------------------------------------------------------
45
+ How to run Docker smooth on Windows? Sounds like a relatively simple question
46
+ followed by a simple answer: go for *Docker for Windows*. Unfortunately,
47
+ the answer is *not* that easy. As often: it depends (on the use case).
48
+
49
+ [role="clearfix mb-3"]
50
+ excerpt__end
51
+
52
+ // Load Liquid procedures
53
+ // -----------------------------------------------------------------------------
54
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
55
+
56
+ // Load page attributes
57
+ // -----------------------------------------------------------------------------
58
+ {% include {{load_attributes}} scope="local" %}
59
+
60
+
61
+ // Page content
62
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63
+ [[readmore]]
64
+ == Docker smooth on Windows
65
+
66
+ // [role="mb-3"]
67
+ // image::/assets/images/collections/blog/series/j1_using_docker/windows_docker_banner.1280x500.png[{{page.title}}]
68
+
69
+ // include::{documentdir}/100-docker-using-shared-folders.asciidoc[]
70
+
71
+ In general, two incarnations of Docker for Windows are available:
72
+
73
+ * Legacy solution: *Docker Toolbox*
74
+ * Native solution: *Docker for Windows*
75
+
76
+ Before the native version of Docker *Docker for Windows* was available,
77
+ a *cross-platform* solution called *Docker Toolbox* could be used.
78
+ *Docker Toolbox* is a bundle of *current* Docker software based on
79
+ *Docker Machine* combined with the *Docker Engine* bundled with
80
+ *VirtualBox* as a Hypervisor to run Linux boxes as virtual machines
81
+ on Windows.
82
+
83
+ What the Docker team recomments: Update to the newer package, if possible.
84
+ This should be discussed, especially for Windows, in more detail ...
85
+
86
+ [WARNING]
87
+ ====
88
+ *The Docker Team mentions the following about Docker Toolbox:*
89
+
90
+ Docker Toolbox is for *older Windows* systems (or *Apple MacOS* versions)
91
+ that *does not meet* the requirements of the *native* Docker version.
92
+ ====
93
+
94
+ Docker won't never run *natively* on Windows. The *Container Technology*
95
+ used by Docker depends on *Linux* (at least on a Unix flavour of the host
96
+ operating system). For all non-Linux (or Unix) platforms, a *Hypervisor* is
97
+ needed to make it possible to run the needed *Linux OS* for Docker.
98
+
99
+ Yes, Windows support a *native* Hypervisor layer: `Hyper-V`. Using the Windows
100
+ component `Hyper-V`, any operating system can be run as *virtual machines* on
101
+ Windows. But it should be kept in mind: the Hypervisor layer is *always* needed;
102
+ as well as for the so-called the *native* Docker version on Windows. But:
103
+ real *native* Docker versions does *not* need a Hypervisor layer; they run
104
+ containers direcly on the host OS! This should be kept on mind.
105
+
106
+ They are some pittfals using *Docker for Windows* if you go for:
107
+
108
+ * Stability - found quite often issues running containers on *Docker for Windows*.
109
+ If you're not a Windows specialist, it is hard to findout issues for `Hyper-V`
110
+ , the VM and|or both.
111
+ * Flexibility - it is *NOT* possible to use the Hypervisor `Hyper-V` in
112
+ parallel to *VirtualBox* as an alternative
113
+ * Incompatibility - on some Windows installations, and for sure they met the
114
+ requirements of the *native* Docker version, the installaton was *NOT*
115
+ successful and Docker fails to start
116
+
117
+ Again: the software included in the *Docker Toolbox* are *current* versions.
118
+ The latest Toolbox contains:
119
+
120
+ * the Docker Engine Docker, version 18.03.0-ce, build 0520e24302
121
+ * the Docker Machine, version 0.14.0, build 89b8332
122
+ * the Docker Composer, version 1.20.1, build 5d8c71b2
123
+ * a current MINGW64-based GNU bash, version 4.4.19(2)-release (x86_64-pc-msys)
124
+
125
+ For all the people having their (IT) roots on Unix respectively Linux, the
126
+ *Docker Toolbox* is the better solution on Windows (for now). No need to go
127
+ for the Windows Hypervisor `Hyper-V` - Oracle *VirtualBox* can be used
128
+ instead; as quite often used for testing and development.
129
+
130
+ Let's have a look how to *Manage Linux on Windows*, to use Docker on the
131
+ Windows platform.
132
+
133
+ == Installing Docker Toolbox
134
+
135
+ As discussed ealier, *Docker Toolbox* is using *VirtualBox* for the
136
+ Hypervisor to create the Linux VMs needed. To get the latest version,
137
+ install VirtualBox first (Docker Toolbox includes a installer package
138
+ for VBox but not nessesarily at their latets version).
139
+
140
+ Go for the link:{virtualbox-install-on-windows}[VirtualBox Download Page]
141
+ and select under *VirtualBox 5.x.y platform packages* the latest version
142
+ for Windows (Windows hosts). Install the package - the installation process
143
+ is quite simple supported by an build in installer wizard.
144
+
145
+ If done, go for the installation of the Toolbox. A current package can be
146
+ retrieved from link:{docker-install-toolbox-on-windows}[Docker Documents].
147
+ The page includes all the info needed to install the software.
148
+
149
+ NOTE: For the installation of the *Docker Toolbox*, please deselect the
150
+ installation of *VirtualBox* included as the software has been already
151
+ installed.
152
+
153
+ NOTE: The commandline interface used by *Docker Toolbox* is based on
154
+ *Git MSYS-git UNIX tools*. If you have *Git* installed already for your
155
+ Windows host, please deselect the installation of *Git* included.
156
+
157
+ *Docker Toolbox* comes with *NO* graphical user interface (GUI). To manage
158
+ Docker, the included GNU bash of the *Git MSYS-git UNIX tools* shoud be used.
159
+ A very first version of a (native) Docker UI on Windows is *Kitematic*,
160
+ currently in a alpha version included.
161
+
162
+ ifdef::backend-html5[]
163
+ .Docker UI Kinematic on Windows
164
+ lightbox::docker-windows-kinematic-alpha[800, {data-docker-windows-kinematic-alpha}]
165
+ endif::[]
166
+
167
+ TIP: You should check *Kitematic*. If started for *Docker Toolbox* on Windows,
168
+ change (the Hypervisor) to Virtualbox.
169
+
170
+ For Windows users a commandline interface to manage a complex system like
171
+ Docker may sound a bit stone age. It's not for good reasons:
172
+
173
+ * the knowlegde of the base Docker commands is essential to understand the
174
+ Container Technology better
175
+
176
+ * Blalal blaaa
177
+
178
+
179
+
180
+ == Manage Linux on Windows
181
+
182
+ VirtualBox is a greate piece of software for desktop and workstation
183
+ virtualization. A huge number of IT specialist and developers are using VB
184
+ for: testing and development environments. Sometimes for production
185
+ environments – if it's applicable.
186
+
187
+ One good idea for VirtualBox is, if you are Web|App developer for Linux you
188
+ can keep *Windows* as your primary OS - yeah, yeah those people are living on
189
+ our planet! One can install a Linux distribution of choice in VirtualBox VM
190
+ and reap both benefits of Windows as primary OS and Linux as a server
191
+ platform for good reasons.
192
+
193
+ === Create a Linux VM
194
+
195
+ lorem:sentences[5]
196
+
197
+ lorem:sentences[3]
198
+
199
+
200
+ === Sharing Data
201
+
202
+ For (real) native Docker installations, it is easy to share data between then
203
+ host OS and containers managed by Docker. It is simple this:
204
+
205
+ [source, sh]
206
+ ----
207
+ docker run --rm \
208
+ --volume=$PWD:/srv/jekyll \
209
+ -p 35729:35729 -p 40000:40000 \
210
+ -it jekyll-one/j1:latest \
211
+ j1 serve --incremental --livereload
212
+ ----
213
+
214
+ The container, instructed by `--volume=$PWD:/srv/jekyll` shares the
215
+ filesystem of the host - the *native* way to bring in data into a
216
+ container for processing. In the example a static Jekyll Web is created
217
+ by J1 Template (j1), served by the ports 35729 for livereload and 40000
218
+ serving the web.
219
+
220
+ For the Windows platform, using a virtual Linux Box for Docker containers,
221
+ this is *NOT* possible. The virtual system is managed by Virtualbox and no
222
+ direct relationship is in between the VBox and the host operating system
223
+ Windows! No (direct) access to the host filesystem is possible. Bad luck so
224
+ far.
225
+
226
+ Generally spoken, there are 3 ways of sharing files between a Windows host
227
+ and Linux guest boxes; keep files:
228
+
229
+ * in the guest (Linux) and share them with host through Samba
230
+ * on host (Windows) and use VirtualBox *Shared Folders*
231
+ * on host (Windows) and mount Windows *Public Folders* via CIFS
232
+ from within guest (Linux)
233
+
234
+ For all people experienced on the Linux platform, the first option is
235
+ probably the easiest. But it has it’s drawbacks. In most cases for testing,
236
+ it's *NOT* wanted to keep files in a VM. In case of corruption of the VM,
237
+ reinstallation needs, or whatever yor data is *lost* in most cases. Truly,
238
+ not an option.
239
+
240
+ Typically developers want them kept on native Windows *disks* as they are
241
+ expected as more safely stored on physical devices and easier to backup.
242
+ So first option is clearly out.
243
+
244
+ *Shared Folders* are really a great idea. After installing the *VirtualBox
245
+ Guest Additions* (which brings the mount.vboxsf binary and vboxsf kernel
246
+ module) the guest can mount automatically a Windows OS folder inside the VM.
247
+ Some klicks further the guest start's, mount the *shared folder* in guest and
248
+ voila: you're done! Sounds really great.
249
+
250
+ But there's a catch performance. Shared Folders are really, really horrible
251
+ slow. Which in turn kills the idea of programming and testing code without
252
+ loosing hair because of the slowness. You can find tons of articles around
253
+ slow shared folders on the Internet; both for the Big Dogs: VMware and
254
+ VirtualBox. But no solution. Since decades.
255
+
256
+ Analyzing the performance, it's obvious that kernel spends really large
257
+ amount of time in IO mode – so the vboxsf CIFS emulation of VirtualBoxis
258
+ behaving something like a slug. Birds love slugs but IT professionals don’t
259
+ like that, do they?
260
+
261
+ It seems that the only viable solution is sharing folders though Windows and
262
+ mounting them via CIFS on the guest, the virtual Linux box. This way, a
263
+ similiar flexible solution for sharing folders can be achived but at a much
264
+ better performance.
265
+
266
+
267
+ === Performance tests
268
+
269
+ Anyway, *shared folders* will be always slow as the are of type *NAS* - network
270
+ attached storage. For a local network nowadays, typically at Gigabit level and
271
+ quite low in latency, an acceptable performance cab be achived.
272
+
273
+ I did some simple tests to show the performance differences. There are three
274
+ directories I did for my tests:
275
+
276
+ * /mnt/media/repo1, data on a physical (local) disk on the host
277
+ * /mnt/media/repo2, data on a physical (local) disk in the guest
278
+ * /mnt/media/repo3, data on a Windows share mounted via cifs in the guest
279
+
280
+ I've been using simple (bash) script based on *dd* commands for testing.
281
+ The *dd* commands used as a base are shown below. For sure not a quite
282
+ sophisticated test scenario but it's giving a general impression what can
283
+ achived in real world.
284
+
285
+ NOTE: For multi-platform testing, on Windows the `dd` command is used as well.
286
+ For *Docker Toolbox*, beside the GNU bash, a full set of *GNU CoreUtils* are
287
+ available as well (accessible out of the *Docker Quickstart Terminal*). The
288
+ used (bash) test script needs to be run out of *Docker Quickstart Terminal*.
289
+ Download the tester script from here.
290
+
291
+ The test script *docker_perf_test.sh* supports a test scenario for
292
+ *General System Performance*. This is focussing on pure CPU|Memory power.
293
+ On both systems (host and guest) these tests are using pure *kernel services*
294
+ for creating input and output data. One is creating random input data as
295
+ fast as possible, the other discards everything it gets as fast as it can.
296
+
297
+ .General System Performance
298
+ [source, sh]
299
+ ----
300
+ dd if=/dev/urandom of=/dev/null bs=1M count=10000
301
+ ----
302
+
303
+ Please see those tests for *General System Performance* for the background
304
+ *What could be achived in therory*. These tests may helpful to compare your
305
+ current setup for the host and the guest same way.
306
+
307
+ As mentioned, all tests for *docker_perf_test.sh* are based on the `dd`
308
+ command. For *real world* measures, standard *dd tests* are used. You'll
309
+ find a lot of those on the Internet. All tests for *docker_perf_test.sh* are
310
+ changed (from `/dev/zero`) to `/dev/urandom` for the input to put some
311
+ *pressure* on the CPU while processing data for reading or writing from the
312
+ filesystem to be checked. All the tests are *rules of thumb*, no technical
313
+ measures.
314
+
315
+ NOTE: Zum Messen der Schreibperformance liest man die zu Schreibenden
316
+ Daten am besten aus /dev/zero und schreibt eine normale Datei im Filesystem
317
+ (z.B. mit of=/root/testfile). Die folgenden Beispiele verwenden ein Testdatei,
318
+ um irrtümlichen Datenverlust zu vermeiden. Die dabei erzielbare Performance
319
+ Werte sind etwas geringer (da dadurch auch Metadaten im Filesystem geschrieben
320
+ werden).
321
+
322
+ Find the base `dd` commands for read an write performance tests below. The
323
+ exported shared folder on Windows is *C:\Users\Public* mapped to the Unix
324
+ (POSIX) folder scheme of */c/Users/Public* on the guest OS.
325
+
326
+ .Write Performance - Windows host (local disk), Linux guest (shared disk)
327
+ [source, sh]
328
+ ----
329
+ dd if=/dev/urandom bs=1M count=1024 | split -b 1M - name.
330
+ ----
331
+ .Write Performance (local disk), Linux guest
332
+ [source, sh]
333
+ ----
334
+ dd if=/dev/urandom of=/var/tmp/test/samplefile bs=1M count=1024
335
+ ----
336
+
337
+ .Read Performance - Windows host (local disk), Linux guest (shared disk)
338
+ [source, sh]
339
+ ----
340
+ dd if=/c/Users/Public/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
341
+ ----
342
+ .Read Performance (local disk), Linux guest
343
+ [source, sh]
344
+ ----
345
+ dd if=/var/tmp/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
346
+ ----
347
+
348
+ Have a look at the table below for the measures found on a *Windows 10*
349
+ desktop host (Intel Core Quad Q9550) using a *SATA-300* disk for the local
350
+ physical disk and a Gigabit network interface (*Realtek PCIe GBE* familiy)
351
+ running a *CentOS 7 Linux* (version 3.10.0-862) as a guest:
352
+
353
+ .Data transfer rates for 1 GB of data
354
+ [cols="2,2,4,3, options="header", role="table-responsive, full-width"]
355
+ |===============================================================================
356
+ |direction |mountpoint |source |througput [MB/s]
357
+
358
+ |`read`
359
+ |/mnt/media/repo1
360
+ |physical (local) disk on the *host*
361
+ |85.20
362
+
363
+ |`read`
364
+ |/mnt/media/repo2
365
+ |physical (local) disk on the *guest*
366
+ |147.00
367
+
368
+ |`read`
369
+ |/mnt/media/repo3
370
+ |shared disk on the *guest*
371
+ |30.3
372
+
373
+ |`write`
374
+ |/mnt/media/repo1
375
+ |physical (local) disk on the *host*
376
+ |234.00
377
+
378
+ |`write`
379
+ |/mnt/media/repo2
380
+ |physical (local) disk on the *guest*
381
+ |34.00
382
+
383
+ |`write`
384
+ |/mnt/media/repo3
385
+ |shared disk on the *guest*
386
+ |39.9
387
+
388
+ |===============================================================================
389
+
390
+ WARNING: Bei Verwendung von if=/dev/zero und bs=1G benötigt das Linuxsystem
391
+ 1GB freien Platz im RAM. Falls Ihr Testsystem nicht ausreichend RAM ...
392
+
393
+ NOTE: Um praxisnahe Ergebnisse zu erhalten empfehlen wir die beschrieben Tests
394
+ mehrmals (z.B. 3 bis 10x) durchzuführen. Damit können Sie Ausreißer rechtzeitig
395
+ erkennen.
396
+
397
+
398
+ lorem:sentences[5]
399
+
400
+ == Publish a Shared Folder
401
+
402
+ lorem:sentences[5]
403
+
404
+ lorem:sentences[3]
405
+
406
+
407
+ == Mount Shared Folders on Linux
408
+
409
+ lorem:sentences[5]
410
+
411
+ === Installing CIFS
412
+
413
+ For the Linux VM, a current Ubunt Server of version 18.06 is used. To mount
414
+ CIFS shares, the package `cifs-utils` needs to be installed:
415
+
416
+ [source, bash]
417
+ ----
418
+ sudo apt-get -y install cifs-utils
419
+ ----
420
+
421
+ Mounting filesystems in general, therefor the same to the CIFS share, are
422
+ done as root. This ends up in the situation this folder cannot (accessed??)
423
+ written as normal user.
424
+
425
+ . Create the `cifs` group
426
+ +
427
+ [source, bash]
428
+ ----
429
+ sudo groupadd cifs
430
+ ----
431
+
432
+ [start=2]
433
+ . Add your user to the `cifs` group
434
+ +
435
+ [source, bash]
436
+ ----
437
+ sudo usermod -aG cifs $USER
438
+ ----
439
+
440
+ [start=3]
441
+ . Create the mountpoint (to be used by Docker) as root
442
+ +
443
+ [source, bash]
444
+ ----
445
+ mkdir -p /c/Users/Public
446
+ ----
447
+
448
+ [start=4]
449
+ . Change the ownership of the mountpoint
450
+ +
451
+ [source, bash]
452
+ ----
453
+ chown -R root:cifs /c/Users/Public
454
+ ----
455
+
456
+ [start=5]
457
+ . Create a credentials file to place user|password data safe.
458
+ +
459
+ [source, bash]
460
+ ----
461
+ touch ~/.smbcredentials
462
+ ----
463
+
464
+ .smbcredentials
465
+ ----
466
+ username=<your_windows_user>
467
+ password=<windows_user_password>
468
+ ----
469
+
470
+ === Mount the share manually
471
+
472
+ To enable non-authorized users to read and write the shared files, specify
473
+ user and group ID that the mounted shares folders should use. This would
474
+ allow particular users and group members to read|write to the share.
475
+
476
+ To do so, the following options are used for a public mount:
477
+
478
+ * username
479
+ * password
480
+ * uid
481
+ * gid
482
+
483
+ Add the Windows host IP address to the hosts file
484
+
485
+ ./etc/hosts
486
+ <ip_v4_address> <name_of_the windows_box> <alias_name>
487
+
488
+
489
+ === Mount the share at boot-time
490
+
491
+ lorem:sentences[3]
492
+
493
+ ./etc/fstab
494
+ &#47;&#47;win10pc/Public /c/Users/Public cifs uid=1000,gid=5555,credentials=/home/jadams/.smbcredentials,iocharset=utf8,rw 0 0