{"id":717,"date":"2017-06-11T13:16:57","date_gmt":"2017-06-11T17:16:57","guid":{"rendered":"http:\/\/www.kralidis.ca\/blog\/?p=717"},"modified":"2019-01-31T20:01:58","modified_gmt":"2019-02-01T01:01:58","slug":"hello-docker","status":"publish","type":"post","link":"https:\/\/www.kralidis.ca\/blog\/2017\/06\/11\/hello-docker\/","title":{"rendered":"Hello Docker"},"content":{"rendered":"<p>For decades now my dev life has been thanks to headless servers in the basement (these days running Debian) which I simply SSH to and work remotely. This has served me well for so long although serious <a href=\"https:\/\/m.subbu.org\/code-the-infra-8c67a869cb89\">box hugging<\/a> was at play here.\u00a0 Being a reproducible workflow maniac and having virtualenv helped as well.<\/p>\n<p>Fast forward a few years and add to that mix dev work on my MacBook Pro.\u00a0 It&#8217;s 64-bit with an SSD and 8GB of RAM and is great for trips.\u00a0 In this case I was less liberal with installing libraries and packages given it&#8217;s a shared computer (I recently had to do a full macOS re-install to fix performance issues).<\/p>\n<p>Enter Docker.\u00a0 Here I am able to start up a full development environment very easily without affecting my MacBook per se (only a Docker install is required).\u00a0 Publish to <a href=\"https:\/\/hub.docker.com\/r\/tomkralidis\/docker-devenv\/\">Docker Hub<\/a> and done.\u00a0 Pull and run at will. My initial requirements for the <a href=\"https:\/\/github.com\/tomkralidis\/docker-devenv\">repo<\/a> are <a href=\"http:\/\/pycsw.org\">pycsw<\/a> development, but this will grow over time.<\/p>\n<p>Of course I&#8217;m really late to the party (Sean Gillies <a href=\"https:\/\/sgillies.net\/2013\/07\/25\/box-hugger-no-more.html\">thought he was late!<\/a>), and I&#8217;m sure there are better approaches, but I think I&#8217;m finally feeling Docker. Good times!<\/p>\n<link rel=\"stylesheet\" href=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.css\" \/>\n<!--[if lte IE 8]>\n  <link rel=\"stylesheet\" href=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.ie.css\" \/>\n<![endif]-->\n<script src=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.js\"><\/script>\n<style type=\"text\/css\">#map717 { width: 300px; height: 200px; }<\/style>\n\n<div id=\"map717\"><\/div>\n<script type=\"text\/javascript\">\n  var map717 = L.map('map717').setView([43.620495, -79.513198], 10);\n  L.tileLayer('http:\/\/{s}.tile.osm.org\/{z}\/{x}\/{y}.png', {\n      attribution: '&copy; <a href=\"http:\/\/osm.org\/copyright\">OpenStreetMap<\/a> contributors'\n  }).addTo(map717);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>For decades now my dev life has been thanks to headless servers in the basement (these days running Debian) which I simply SSH to and work remotely. This has served me well for so long although serious box hugging was at play here.\u00a0 Being a reproducible workflow maniac and having virtualenv helped as well. Fast [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,3],"tags":[],"class_list":["post-717","post","type-post","status-publish","format-standard","hentry","category-open-source","category-technology"],"_links":{"self":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts\/717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/comments?post=717"}],"version-history":[{"count":4,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts\/717\/revisions"}],"predecessor-version":[{"id":769,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts\/717\/revisions\/769"}],"wp:attachment":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/media?parent=717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/categories?post=717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/tags?post=717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}