Compare commits
73 Commits
Author | SHA1 | Date | |
---|---|---|---|
9c48d3e7ec | |||
7945303e9f | |||
2d11efdcf9 | |||
5100b6b3b1 | |||
a8da4d3fd4 | |||
2fd11c91a0 | |||
46a0413e94 | |||
a0c9a52ec7 | |||
71d9d06ddd | |||
2e23e31bec | |||
82bb2ccc5b | |||
a5f93beea5 | |||
6dd5406573 | |||
22c8f8dbf8 | |||
d8b582a18b | |||
d7fbededbd | |||
afb3bba4ac | |||
20eac2bb4a | |||
92e3f97efe | |||
87081d5bb6 | |||
979f8fcd27 | |||
f827d8c36b | |||
020bca3347 | |||
e295440d11 | |||
a3b5bbc4d4 | |||
da26dc649d | |||
dc7b11c78d | |||
c9b317372f | |||
c7bdbd3901 | |||
e07d31c2af | |||
8ad139ba56 | |||
e7170565f4 | |||
5e89b9a9a7 | |||
5cbf1489bd | |||
a83cc999c4 | |||
ada45c2db7 | |||
db439e3733 | |||
16ba6ab3d3 | |||
00631f769b | |||
d110ef6a47 | |||
3d1161a799 | |||
6e8f7ef602 | |||
b7ba47db18 | |||
d0d3e15922 | |||
9a845b8ec7 | |||
75cc86d69f | |||
9f872eb376 | |||
15165235fd | |||
9e23bf4811 | |||
6bf5730895 | |||
0c733d3a90 | |||
1007880f8c | |||
4ec2503671 | |||
b1814a60d5 | |||
aed0fee59f | |||
fc53a7e3f0 | |||
6ee919ac34 | |||
1b8680edff | |||
67f4456073 | |||
b2835bd220 | |||
a0a2cc2eda | |||
e8c24d504c | |||
866346a0a5 | |||
04ea46f681 | |||
cd858ae9fa | |||
dc28ada99a | |||
09c78e9577 | |||
7525d1af5c | |||
043651bfac | |||
621fff81c3 | |||
b0e8ff164f | |||
21ce311be3 | |||
c030b94bc6 |
@ -1,23 +1,27 @@
|
|||||||
image: hosttoday/ht-docker-dbase
|
# gitzone docker
|
||||||
|
image: hosttoday/ht-docker-dbase:npmci
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
|
variables:
|
||||||
|
DOCKER_DRIVER: overlay
|
||||||
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
|
- pages
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- npm uninstall -g npmci
|
- yarn global add npmci
|
||||||
- npm install -g npmci
|
- npmci docker login
|
||||||
- npmci prepare docker
|
|
||||||
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- npmci build docker
|
- npmci docker build
|
||||||
|
- npmci docker push registry.gitlab.com test
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- priv
|
- priv
|
||||||
@ -26,9 +30,8 @@ build:
|
|||||||
test:
|
test:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test docker
|
- npmci docker pull registry.gitlab.com test
|
||||||
only:
|
- npmci docker test
|
||||||
- master
|
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- priv
|
- priv
|
||||||
@ -36,9 +39,12 @@ test:
|
|||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npmci publish docker
|
- npmci docker pull registry.gitlab.com test
|
||||||
|
- npmci docker push docker.io
|
||||||
|
- npmci docker push registry.gitlab.com
|
||||||
only:
|
only:
|
||||||
- master
|
- tags
|
||||||
|
- triggers
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- priv
|
- priv
|
||||||
@ -48,7 +54,25 @@ trigger:
|
|||||||
script:
|
script:
|
||||||
- npmci trigger
|
- npmci trigger
|
||||||
only:
|
only:
|
||||||
- master
|
- tags
|
||||||
|
- triggers
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- priv
|
- priv
|
||||||
|
|
||||||
|
pages:
|
||||||
|
before_script:
|
||||||
|
- 'npmci -v'
|
||||||
|
image: hosttoday/ht-docker-node:npmci
|
||||||
|
stage: pages
|
||||||
|
script:
|
||||||
|
- npmci command yarn global add npmpage
|
||||||
|
- npmci command npmpage
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
23
Dockerfile
23
Dockerfile
@ -1,7 +1,8 @@
|
|||||||
FROM ubuntu:latest
|
FROM ubuntu:latest
|
||||||
|
MAINTAINER Lossless GmbH <office@lossless.com>
|
||||||
|
|
||||||
# important environment variables
|
# important environment variables
|
||||||
ENV NODE_VERSION_LTS="4.4.7" NODE_VERSION_STABLE="6.3.0" NVM_DIR="/usr/local/nvm"
|
ENV NODE_VERSION_LTS="6.10.0" NODE_VERSION_STABLE="8.1.3" NVM_DIR="/usr/local/nvm"
|
||||||
|
|
||||||
# Set debconf to run non-interactively and install packages
|
# Set debconf to run non-interactively and install packages
|
||||||
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \
|
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \
|
||||||
@ -13,21 +14,21 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
|
|||||||
build-essential \
|
build-essential \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
git \
|
git \
|
||||||
ssh \
|
make \
|
||||||
openssl \
|
openssl \
|
||||||
python \
|
python \
|
||||||
rsync \
|
rsync \
|
||||||
|
ssh \
|
||||||
|
wget \
|
||||||
|
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||||
|
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install yarn -y \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -r /var/lib/apt/lists/*
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install nvm with node and npm
|
# Install nvm with node and npm
|
||||||
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash \
|
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
|
||||||
&& bash -c "source $NVM_DIR/nvm.sh \
|
|
||||||
&& nvm install $NODE_VERSION_STABLE \
|
|
||||||
&& nvm alias default $NODE_VERSION_STABLE \
|
|
||||||
&& nvm use default \
|
|
||||||
&& npm install -g npm"
|
|
||||||
|
|
||||||
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION_STABLE/lib/node_modules
|
|
||||||
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION_STABLE/bin:$PATH
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
FROM hosttoday/ht-docker-node:latest
|
FROM hosttoday/ht-docker-node:latest
|
||||||
|
MAINTAINER Lossless GmbH <office@lossless.com>
|
||||||
|
|
||||||
RUN bash -c "source $NVM_DIR/nvm.sh \
|
RUN bash -c "source $NVM_DIR/nvm.sh \
|
||||||
&& nvm install $NODE_VERSION_LTS \
|
&& nvm install $NODE_VERSION_LTS \
|
||||||
&& nvm alias default $NODE_VERSION_LTS \
|
&& nvm alias default $NODE_VERSION_LTS \
|
||||||
&& nvm use default \
|
&& nvm use default \
|
||||||
|
&& npm config set unsafe-perm true \
|
||||||
&& npm install -g npm"
|
&& npm install -g npm"
|
||||||
|
|
||||||
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION_LTS/lib/node_modules
|
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION_LTS/lib/node_modules
|
||||||
|
7
Dockerfile_mongo
Normal file
7
Dockerfile_mongo
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM hosttoday/ht-docker-node:stable
|
||||||
|
MAINTAINER Lossless GmbH <office@lossless.com>
|
||||||
|
|
||||||
|
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y mongodb-org
|
@ -1,2 +1,4 @@
|
|||||||
FROM hosttoday/ht-docker-node:latest
|
FROM hosttoday/ht-docker-node:stable
|
||||||
|
MAINTAINER Lossless GmbH <office@lossless.com>
|
||||||
|
|
||||||
RUN npm install -g npmci
|
RUN npm install -g npmci
|
14
Dockerfile_npmcijava
Normal file
14
Dockerfile_npmcijava
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
FROM hosttoday/ht-docker-node:npmci
|
||||||
|
MAINTAINER Lossless GmbH <office@lossless.com>
|
||||||
|
|
||||||
|
# Install Java.
|
||||||
|
RUN \
|
||||||
|
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
|
||||||
|
add-apt-repository -y ppa:webupd8team/java && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y oracle-java8-installer && \
|
||||||
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
|
rm -rf /var/cache/oracle-jdk8-installer
|
||||||
|
|
||||||
|
# Define commonly used JAVA_HOME variable
|
||||||
|
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
|
3
Dockerfile_npmcinanobox
Normal file
3
Dockerfile_npmcinanobox
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM hosttoday/ht-docker-node:npmci
|
||||||
|
RUN sudo bash -c "$(curl -fsSL https://s3.amazonaws.com/tools.nanobox.io/bootstrap/ci.sh)"
|
||||||
|
RUN nanobox config set ci-mode true
|
@ -1,2 +0,0 @@
|
|||||||
FROM hosttoday/ht-docker-node:npmci
|
|
||||||
RUN npm install -g npmdeploy
|
|
@ -1,5 +0,0 @@
|
|||||||
FROM hosttoday/ht-docker-node:npmts
|
|
||||||
RUN npmci install stable && npmci command npm install -g npmpage && npmci command npmpage -v \
|
|
||||||
&& npmci install legacy && npmci command npm install -g npmpage && npmci command npmpage -v \
|
|
||||||
&& npmci install lts && npmci command npm install -g npmpage && npmci command npmpage -v \
|
|
||||||
&& npmci clean
|
|
@ -1,5 +0,0 @@
|
|||||||
FROM hosttoday/ht-docker-node:npmci
|
|
||||||
RUN npmci install stable && npmci command npm install -g npm npmts && npmci command npmts -v \
|
|
||||||
&& npmci install legacy && npmci command npm install -g npm npmts && npmci command npmts -v \
|
|
||||||
&& npmci install lts && npmci command npm install -g npm npmts && npmci command npmts -v \
|
|
||||||
&& npmci clean
|
|
@ -1,13 +0,0 @@
|
|||||||
FROM hosttoday/ht-docker-node:latest
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y -q --no-install-recommends \
|
|
||||||
python3 \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -r /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Install pip and symlink python to python3
|
|
||||||
RUN curl -O https://bootstrap.pypa.io/get-pip.py \
|
|
||||||
&& python3 get-pip.py \
|
|
||||||
&& rm get-pip.py \
|
|
||||||
&& rm -r /usr/bin/python \
|
|
||||||
&& ln -s /usr/bin/python3 /usr/bin/python
|
|
@ -1 +1,11 @@
|
|||||||
FROM hosttoday/ht-docker-node:latest
|
FROM hosttoday/ht-docker-node:latest
|
||||||
|
|
||||||
|
RUN bash -c "source $NVM_DIR/nvm.sh \
|
||||||
|
&& nvm install $NODE_VERSION_STABLE \
|
||||||
|
&& nvm alias default $NODE_VERSION_STABLE \
|
||||||
|
&& nvm use default \
|
||||||
|
&& npm config set unsafe-perm true \
|
||||||
|
&& npm install -g npm"
|
||||||
|
|
||||||
|
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION_STABLE/lib/node_modules
|
||||||
|
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION_STABLE/bin:$PATH
|
||||||
|
48
docs/index.md
Normal file
48
docs/index.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
name: ht-docker-node
|
||||||
|
description: the ultimate docker-node image
|
||||||
|
---
|
||||||
|
# ht-docker-node
|
||||||
|
the ultimate docker node image
|
||||||
|
|
||||||
|
## Status
|
||||||
|
[](https://gitlab.com/hosttoday/ht-docker-node/commits/master)
|
||||||
|
|
||||||
|
## Availability
|
||||||
|
Registry | Image Path
|
||||||
|
--- | ---
|
||||||
|
GitLab Registry | registry.gitlab.com/hosttoday/ht-docker-node
|
||||||
|
Docker Hub | hosttoday/ht-docker-node
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
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.
|
||||||
|
|
||||||
|
The **:npmci flavour** has npmci in path and can install any required node version and update PATH accordingly:
|
||||||
|
|
||||||
|
```Dockerfile
|
||||||
|
FROM hosttoday/ht-docker-node:npmci
|
||||||
|
RUN npmci install [node_version_number] // this installs node using node and sets the default to the new node and npm versions
|
||||||
|
```
|
||||||
|
|
||||||
|
## Flavour Overview:
|
||||||
|
|
||||||
|
* **:lts** - node lts version, equals :latest
|
||||||
|
* **:stable** - node stable version
|
||||||
|
* **:npmci** - npmci preinstalled
|
||||||
|
* **:npmcijava - npmci + java
|
||||||
|
* **:npmts** - npmci + npmts preinstalled
|
||||||
|
* **:npmpage** - npmci + npmts + npmpage preinstalled
|
||||||
|
* **:mongo** - npmci + npmts + mongo
|
||||||
|
|
||||||
|
## optimized for performance with npmci and npmts
|
||||||
|
Take a goof look at the **npmts** and **npmci** tools on npm. They make development of TypeScript node modules rediculouly easy :)
|
||||||
|
|
||||||
|
The **:npmcijava** flavour works together with **smartwebdriver** so you can test all your cool polymer elements in a headless chrome environment or sauce :)
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this README.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||||
|
|
||||||
|
[](https://host.today)
|
1
node_modules/.yarn-integrity
generated
vendored
Normal file
1
node_modules/.yarn-integrity
generated
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
549854b8a60607db81d4c58008d59f812d744acba026266f380acd942941356a
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ht-docker-node",
|
"name": "ht-docker-node",
|
||||||
"version": "4.3.2",
|
"version": "4.3.29",
|
||||||
"description": "docker image with nodejs with shipzone.io support",
|
"description": "docker image with nodejs with shipzone.io support",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
411
public/index.html
Normal file
411
public/index.html
Normal file
@ -0,0 +1,411 @@
|
|||||||
|
<!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>
|
@ -1,14 +1,17 @@
|
|||||||
# ht-docker-node
|
# ht-docker-node
|
||||||
|
the ultimate docker node image
|
||||||
This image is available on DockerHub. Specify it as base image like so:
|
|
||||||
|
|
||||||
```Dockerfile
|
|
||||||
FROM hosttoday/ht-docker-node
|
|
||||||
```
|
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
[](https://gitlab.com/hosttoday/ht-docker-node/commits/master)
|
[](https://gitlab.com/hosttoday/ht-docker-node/commits/master)
|
||||||
|
|
||||||
|
[Docs](https://hosttoday.gitlab.io/ht-docker-node/)
|
||||||
|
|
||||||
|
## Availability
|
||||||
|
Registry | Image Path
|
||||||
|
--- | ---
|
||||||
|
GitLab Registry | registry.gitlab.com/hosttoday/ht-docker-node
|
||||||
|
Docker Hub | hosttoday/ht-docker-node
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
The purpose of this Docker image is to provide a robust base for node apps and CI.
|
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.
|
It comes in different flavours and all of them have node, npm, git and ssh in PATH.
|
||||||
@ -27,4 +30,11 @@ RUN npmci install [node_version_number] // this installs node using node and set
|
|||||||
* **:npmci** - npmci preinstalled
|
* **:npmci** - npmci preinstalled
|
||||||
* **:npmts** - npmci + npmts preinstalled
|
* **:npmts** - npmci + npmts preinstalled
|
||||||
* **:npmpage** - npmci + npmts + npmpage preinstalled
|
* **:npmpage** - npmci + npmts + npmpage preinstalled
|
||||||
* **:python3** - like :latest, but with python3 as standard python version
|
* **:mongo** - npmci + npmts + mongo
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this README.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||||
|
|
||||||
|
[](https://host.today)
|
@ -1,3 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
npm -v
|
yarn -v
|
||||||
node -v
|
|
||||||
|
@ -1 +1,9 @@
|
|||||||
|
# check if npmci is available
|
||||||
npmci -v
|
npmci -v
|
||||||
|
|
||||||
|
# check if we can use lts
|
||||||
|
npmci install lts
|
||||||
|
|
||||||
|
# check if yarn picks it up
|
||||||
|
npmci command yarn global add npmts
|
||||||
|
npmci command npmts -v
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
npmci install stable
|
|
||||||
npmci command npmts -v
|
|
||||||
npmci install lts
|
|
||||||
npmci command npmts -v
|
|
||||||
npmci install legacy
|
|
||||||
npmci command npmts -v
|
|
3
test/test_stable.sh
Normal file
3
test/test_stable.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# test yarn
|
||||||
|
yarn global add npmts
|
||||||
|
npmts -v
|
Reference in New Issue
Block a user