<!DOCTYPE html> <html> <head> <title>Quicksite</title> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:300,400,700|Roboto+Slab:300,400,700|Roboto:300,400,700" rel="stylesheet" > <style> .menuBox { box-shadow: 0px 0px 5px #CCCCCC; margin: auto; box-sizing: border-box; margin-bottom: 70px; margin-top: 0px; width: 100%; background: #2196F3; position: fixed; padding: 15px; will-change: transform; } .menuBox .menuItems { text-align: right; } .menuBox .menuItems a { display: inline-block; padding: 0px 10px; border-right: 1px #fff solid; font-size: 15px; font-weight: 400; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; color: #fafafa; } .menuBox .menuItems a:hover { color: #fff; } .menuBox .menuItems a:last-of-type { border-right: none; } h1, h2, h3, h4 { margin: 1.414rem 0 .5rem; font-weight: inherit; font-family: 'Roboto Slab', serif; line-height: 1.42; text-align: center; } h1 { margin-top: 0; font-size: 3.998rem; } h1::after { display: block; margin: auto; margin-top: 0px; width: 200px; border-top: 2px #e4002b solid; content: ''; } h1 + h2 { font-weight: 300; margin-top: 5px; font-size: 25px; } h2 { font-size: 2.827rem; } h3 { font-size: 1.999rem; } h4 { font-size: 1.414rem; } h5 { font-size: 1.121rem; } h6 { font-size: .88rem; } table { -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; width: 100%; margin-bottom: 2rem; margin-left: 0px; margin-right: 0px; background-color: #fff; box-shadow: 0px 0px 3px #ccc; border-radius: 3px; padding: 10px; } @media screen and (min-width: 768px) { table { width: 768px; } } @media screen and (min-width: 1200px) { table { width: 968px; margin-left: -100px; margin-right: -100px; } } table thead tr, table tbody tr, table tfoot tr { -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; } table thead tr th, table thead tr td, table tbody tr th, table tbody tr td, table tfoot tr th, table tfoot tr td { text-align: left; padding: 10px; vertical-align: top; border-top: 0; -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; } table thead tr th { font-weight: 400; color: #757575; vertical-align: bottom; border-bottom: 1px solid rgba(0, 0, 0, 0.12); } table caption + thead tr:first-child th, table caption + thead tr:first-child td, table colgroup + thead tr:first-child th, table colgroup + thead tr:first-child td, table thead:first-child tr:first-child th, table thead:first-child tr:first-child td { border-top: 0; } table tbody + tbody { border-top: 1px solid rgba(0, 0, 0, 0.12); } blockquote { padding: 0px; page-break-inside: avoid; margin: 0; border-left: 5px solid #7a7a7a; font-style: italic; text-align: left; } blockquote p { padding: 10px; } table { -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; width: 100%; margin-bottom: 2rem; margin-left: 0px; margin-right: 0px; background-color: #fff; box-shadow: 0px 0px 3px #ccc; border-radius: 3px; padding: 10px; } @media screen and (min-width: 768px) { table { width: 768px; } } @media screen and (min-width: 1200px) { table { width: 968px; margin-left: -100px; margin-right: -100px; } } table thead tr, table tbody tr, table tfoot tr { -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; } table thead tr th, table thead tr td, table tbody tr th, table tbody tr td, table tfoot tr th, table tfoot tr td { text-align: left; padding: 10px; vertical-align: top; border-top: 0; -webkit-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; } table thead tr th { font-weight: 400; color: #757575; vertical-align: bottom; border-bottom: 1px solid rgba(0, 0, 0, 0.12); } table caption + thead tr:first-child th, table caption + thead tr:first-child td, table colgroup + thead tr:first-child th, table colgroup + thead tr:first-child td, table thead:first-child tr:first-child th, table thead:first-child tr:first-child td { border-top: 0; } table tbody + tbody { border-top: 1px solid rgba(0, 0, 0, 0.12); } .content { margin: auto; padding-top: 110px; max-width: 768px; } @media screen and (max-width: 808px) { .content { margin-left: 20px; margin-right: 20px; } } .footer { border-top: 2px #333 solid; margin: auto; margin-top: 70px; margin-bottom: 60px; max-width: 768px; } @media screen and (min-width: 500px) { .footer .footerGridContainer { margin-left: -20px; margin-right: -20px; } } .footer .footerGridContainer::after { clear: both; content: ""; display: block; } .footer .footerGridContainer .footerColumn { padding-top: 20px; } @media screen and (min-width: 500px) { .footer .footerGridContainer .footerColumn { width: calc(33.33333% - 26.66667px); float: left; margin-left: 20px; } } .footer .footerGridContainer .footerColumn h1 { font-size: 14px; font-weight: 700; text-align: left; text-transform: uppercase; } .footer .footerGridContainer .footerColumn h1::after { content: none; } .footer .footerGridContainer .footerColumn a { color: #333; text-decoration: none; display: block; padding: 2px 10px 2px 10px; border-left: #CCC 2px solid; -webkit-transition: all 0.1s ease; -o-transition: all 0.1s ease; transition: all 0.1s ease; } .footer .footerGridContainer .footerColumn a:hover { border-left: 2px #e4002b solid; background: #e8e8e8; } .footer .footerGridContainer .footerColumn a + span { -webkit-transition: all 0.1s ease; -o-transition: all 0.1s ease; transition: all 0.1s ease; color: #666; font-family: 'Roboto Mono', monospace; font-weight: 400; font-size: 10px; display: block; padding-left: 10px; border-left: 2px #eee solid; margin-bottom: 5px; } .footer .footerGridContainer .footerColumn a:hover + span { border-left: 2px #e4002b solid; background: #f0f0f0; } @media print { *, *:before, *:after { background: transparent !important; color: #000 !important; box-shadow: none !important; text-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="#"]:after, a[href^="javascript:"]:after { content: ""; } pre { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr { page-break-inside: avoid; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } } html { font-size: 12px; } @media screen and (min-width: 32rem) and (max-width: 48rem) { html { font-size: 15px; } } @media screen and (min-width: 48rem) { html { font-size: 16px; } } p { font-size: 1rem; margin-bottom: 1.3rem; } small { font-size: .707em; } canvas, iframe, video, svg, select, textarea { max-width: 100%; } body { color: #444; font-family: 'Roboto', sans-serif; font-weight: 300; line-height: 1.85; margin: 0px; } a, a:visited { color: #3498db; } a:hover, a:focus, a:active { color: #2980b9; } pre { background-color: #fafafa; padding: 1rem; text-align: left; } ul, ol, li { text-align: left; } p { color: #777; } </style> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div class='menuBox'> <div class='menuItems'> <a href='./index.html'>index</a> </div> </div> <div class='content'> <h1 id="ht-docker-node">ht-docker-node</h1> <p>the ultimate docker node image</p> <h2 id="status">Status</h2> <p><a href="https://gitlab.com/hosttoday/ht-docker-node/commits/master"><img src="https://gitlab.com/hosttoday/ht-docker-node/badges/master/build.svg" alt="build status"></a></p> <h2 id="availability">Availability</h2> <table> <thead> <tr> <th>Registry</th> <th>Image Path</th> </tr> </thead> <tbody> <tr> <td>GitLab Registry</td> <td>registry.gitlab.com/hosttoday/ht-docker-node</td> </tr> <tr> <td>Docker Hub</td> <td>hosttoday/ht-docker-node</td> </tr> </tbody> </table> <h2 id="usage">Usage</h2> <p>The purpose of this Docker image is to provide a robust base for node apps and CI. It comes in different flavours and all of them have node, npm, git and ssh in PATH.</p> <p>The <strong>:npmci flavour</strong> has npmci in path and can install any required node version and update PATH accordingly:</p> <pre><code class="lang-Dockerfile">FROM hosttoday/ht-docker-<span class="hljs-keyword">node</span><span class="hljs-title">:npmci</span> RUN npmci install [node_version_number] // this installs <span class="hljs-keyword">node</span> <span class="hljs-title">using</span> <span class="hljs-keyword">node</span> <span class="hljs-title">and</span> sets the default to the new <span class="hljs-keyword">node</span> <span class="hljs-title">and</span> npm versions </code></pre> <h2 id="flavour-overview-">Flavour Overview:</h2> <ul> <li><strong>:lts</strong> - node lts version, equals :latest</li> <li><strong>:stable</strong> - node stable version</li> <li><strong>:npmci</strong> - npmci preinstalled</li> <li><strong>:npmts</strong> - npmci + npmts preinstalled</li> <li><strong>:npmpage</strong> - npmci + npmts + npmpage preinstalled</li> <li><strong>:mongo</strong> - npmci + npmts + mongo</li> </ul> <p>For further information read the linked docs at the top of this README.</p> <blockquote> <p>MIT licensed | <strong>©</strong> <a href="https://lossless.gmbh">Lossless GmbH</a> | By using this npm module you agree to our <a href="https://lossless.gmbH/privacy.html">privacy policy</a></p> </blockquote> <p><a href="https://host.today"><img src="https://hosttoday.gitlab.io/assets/repo-footer.svg" alt="repo-footer"></a></p> <div class='footer'> <div class='footerGridContainer'> </div> </div> </div> </body> </html>