Thicket data repository for the EEG
at main 5.7 kB view raw
1{ 2 "id": "https://mort.io/blog/quelle-dommage/", 3 "title": "Quelle dommage", 4 "link": "https://mort.io/blog/quelle-dommage/", 5 "updated": "2017-11-05T00:00:00", 6 "published": "2017-11-05T00:00:00", 7 "summary": "<blockquote>\n<p>Ed: this tool is perhaps less relevant now that both\n<a href=\"https://mirage.io/\">Mirage</a> and <a href=\"https://ocaml.org/opam/\">OPAM</a> have moved\non. But perhaps it’ll be resurrected one day so here it is.</p>\n</blockquote>\n<p>Largely because I wanted to make a feeble attempt at a French pun,\n<a href=\"https://github.com/mor1/dommage/\"><code>dommage</code></a> is a tool for\n<a href=\"https://docker.com/\">Docker</a> containerising Mirage unikernels. From the\n<a href=\"https://github.com/mor1/dommage\">README</a>:</p>\n<h2><a href=\"https://mort.io/blog/quelle-dommage/#dommage-dockerised-mirage\">Dommage, Dockerised Mirage</a></h2>\n<p><code>dommage</code> is a shell script that wraps the <a href=\"https://mirage.io\">Mirage</a> CLI to make use of Docker\ncontainers meaning that:</p>\n<ul>\n<li>you can cache the OPAM build artefacts in the container image, speeding up\nlocal builds;</li>\n<li>you can re-use the build container image in Travis builds by publishing it,\nspeeding those up considerably; and</li>\n<li>you can easily test build <code>-t xen</code> targets on OSX.</li>\n</ul>\n<p>I’ve tried to minimise interference with the normal operation of <a href=\"https://mirage.io\">Mirage</a> CLI so\nsimply replacing <code>mirage</code> with <code>dommage</code> is supposed to work. To publish the\nresulting container image, <code>dommage publish &lt;image&gt;</code>.</p>\n<p>Issues, comments, suggestions and bug fixes all welcome!</p>\n<h3><a href=\"https://mort.io/blog/quelle-dommage/#operation\">Operation</a></h3>\n<p>To start, <code>dommage</code> provides a few management commands to manipulate the build\ncontainer:</p>\n<ul>\n<li><code>dommage init BASE-IMAGE</code> creates a new container, based off <code>BASE-IMAGE</code>\nfrom the <a href=\"https://hub.docker.com\">Docker Hub</a></li>\n<li><code>dommage publish IMAGE</code> commits the current container and pushes it to\n<a href=\"https://hub.docker.com\">Docker Hub</a> as <code>IMAGE</code></li>\n<li><code>dommage destroy</code> stops and removes the current build container</li>\n<li><code>dommage run ...</code> executes a command inside the current build container</li>\n</ul>\n<p>In addition, it wraps the main <a href=\"https://mirage.io\">Mirage</a> CLI commands:</p>\n<ul>\n<li><code>dommage configure ...</code> runs <code>mirage configure ... &amp;&amp; make depends</code> inside\nthe build contianer</li>\n<li><code>dommage build ...</code> runs <code>mirage build ...</code> inside the build container</li>\n<li><code>dommage clean ...</code> runs <code>mirage clean ...</code> inside the build container</li>\n</ul>", 8 "content": "<blockquote>\n<p>Ed: this tool is perhaps less relevant now that both\n<a href=\"https://mirage.io/\">Mirage</a> and <a href=\"https://ocaml.org/opam/\">OPAM</a> have moved\non. But perhaps it’ll be resurrected one day so here it is.</p>\n</blockquote>\n<p>Largely because I wanted to make a feeble attempt at a French pun,\n<a href=\"https://github.com/mor1/dommage/\"><code>dommage</code></a> is a tool for\n<a href=\"https://docker.com/\">Docker</a> containerising Mirage unikernels. From the\n<a href=\"https://github.com/mor1/dommage\">README</a>:</p>\n<h2><a href=\"https://mort.io/blog/quelle-dommage/#dommage-dockerised-mirage\">Dommage, Dockerised Mirage</a></h2>\n<p><code>dommage</code> is a shell script that wraps the <a href=\"https://mirage.io\">Mirage</a> CLI to make use of Docker\ncontainers meaning that:</p>\n<ul>\n<li>you can cache the OPAM build artefacts in the container image, speeding up\nlocal builds;</li>\n<li>you can re-use the build container image in Travis builds by publishing it,\nspeeding those up considerably; and</li>\n<li>you can easily test build <code>-t xen</code> targets on OSX.</li>\n</ul>\n<p>I’ve tried to minimise interference with the normal operation of <a href=\"https://mirage.io\">Mirage</a> CLI so\nsimply replacing <code>mirage</code> with <code>dommage</code> is supposed to work. To publish the\nresulting container image, <code>dommage publish &lt;image&gt;</code>.</p>\n<p>Issues, comments, suggestions and bug fixes all welcome!</p>\n<h3><a href=\"https://mort.io/blog/quelle-dommage/#operation\">Operation</a></h3>\n<p>To start, <code>dommage</code> provides a few management commands to manipulate the build\ncontainer:</p>\n<ul>\n<li><code>dommage init BASE-IMAGE</code> creates a new container, based off <code>BASE-IMAGE</code>\nfrom the <a href=\"https://hub.docker.com\">Docker Hub</a></li>\n<li><code>dommage publish IMAGE</code> commits the current container and pushes it to\n<a href=\"https://hub.docker.com\">Docker Hub</a> as <code>IMAGE</code></li>\n<li><code>dommage destroy</code> stops and removes the current build container</li>\n<li><code>dommage run ...</code> executes a command inside the current build container</li>\n</ul>\n<p>In addition, it wraps the main <a href=\"https://mirage.io\">Mirage</a> CLI commands:</p>\n<ul>\n<li><code>dommage configure ...</code> runs <code>mirage configure ... &amp;&amp; make depends</code> inside\nthe build contianer</li>\n<li><code>dommage build ...</code> runs <code>mirage build ...</code> inside the build container</li>\n<li><code>dommage clean ...</code> runs <code>mirage clean ...</code> inside the build container</li>\n</ul>", 9 "content_type": "html", 10 "author": { 11 "name": "Unknown", 12 "email": null, 13 "uri": null 14 }, 15 "categories": [], 16 "source": "https://mort.io/atom.xml" 17}