Skip to content

Commit ebdf10a

Browse files
committed
Introduce Dockerfiles for nanoserver
Signed-off-by: Stefan Scherer <[email protected]>
1 parent 73b0a6e commit ebdf10a

File tree

5 files changed

+79
-0
lines changed

5 files changed

+79
-0
lines changed

4.5/windows/nanoserver/Dockerfile

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
FROM microsoft/nanoserver
2+
3+
ENV NPM_CONFIG_LOGLEVEL info
4+
ENV NODE_VERSION 4.5.0
5+
ENV NODE_SHA256 16aab15b29e79746d1bae708f6a5dbed8ef3c87426a9408f7261163d0cda0f56
6+
7+
RUN powershell.exe -Command \
8+
$ErrorActionPreference = 'Stop' ; \
9+
$handler = New-Object System.Net.Http.HttpClientHandler ; \
10+
$client = New-Object System.Net.Http.HttpClient($handler) ; \
11+
$client.Timeout = New-Object System.TimeSpan(0, 30, 0) ; \
12+
$cancelTokenSource = [System.Threading.CancellationTokenSource]::new() ; \
13+
$responseMsg = $client.GetAsync([System.Uri]::new('https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-win-x64.zip'), $cancelTokenSource.Token) ; \
14+
$responseMsg.Wait() ; \
15+
$downloadedFileStream = [System.IO.FileStream]::new('C:\node.zip', [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write) ; \
16+
$response = $responseMsg.Result ; \
17+
$copyStreamOp = $response.Content.CopyToAsync($downloadedFileStream) ; \
18+
$copyStreamOp.Wait() ; \
19+
$downloadedFileStream.Close() ; \
20+
[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\node.zip','c:\') ; \
21+
Rename-Item 'C:\node-v%NODE_VERSION%-win-x64' 'C:\nodejs' ; \
22+
New-Item '%APPDATA%\npm' ; \
23+
$env:PATH = 'C:\nodejs;%APPDATA%\npm;' + $env:PATH ; \
24+
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $env:PATH ; \
25+
Remove-Item -Path node.zip
26+
27+
CMD [ "node.exe" ]
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM node:4.5.0-nanoserver
2+
3+
RUN mkdir \app
4+
WORKDIR /app
5+
6+
ONBUILD COPY package.json package.json
7+
ONBUILD RUN npm install & rd /s /q %APPDATA%\npm-cache & for /d %G in ("%TEMP%\npm-*") do rd /s /q "%~G"
8+
ONBUILD COPY . .
9+
10+
CMD [ "npm.cmd", "start" ]

6.4/windows/nanoserver/Dockerfile

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
FROM microsoft/nanoserver
2+
3+
ENV NPM_CONFIG_LOGLEVEL info
4+
ENV NODE_VERSION 6.4.0
5+
ENV NODE_SHA256 bb994370e43c1539e11588a86e69064459141b6984b705f1c79a1a13181193b9
6+
7+
RUN powershell.exe -Command \
8+
$ErrorActionPreference = 'Stop' ; \
9+
$handler = New-Object System.Net.Http.HttpClientHandler ; \
10+
$client = New-Object System.Net.Http.HttpClient($handler) ; \
11+
$client.Timeout = New-Object System.TimeSpan(0, 30, 0) ; \
12+
$cancelTokenSource = [System.Threading.CancellationTokenSource]::new() ; \
13+
$responseMsg = $client.GetAsync([System.Uri]::new('https://nodejs.org/dist/v%NODE_VERSION%/node-v%NODE_VERSION%-win-x64.zip'), $cancelTokenSource.Token) ; \
14+
$responseMsg.Wait() ; \
15+
$downloadedFileStream = [System.IO.FileStream]::new('C:\node.zip', [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write) ; \
16+
$response = $responseMsg.Result ; \
17+
$copyStreamOp = $response.Content.CopyToAsync($downloadedFileStream) ; \
18+
$copyStreamOp.Wait() ; \
19+
$downloadedFileStream.Close() ; \
20+
[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\node.zip','c:\') ; \
21+
Rename-Item 'C:\node-v%NODE_VERSION%-win-x64' 'C:\nodejs' ; \
22+
New-Item '%APPDATA%\npm' ; \
23+
$env:PATH = 'C:\nodejs;%APPDATA%\npm;' + $env:PATH ; \
24+
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $env:PATH ; \
25+
Remove-Item -Path node.zip
26+
27+
CMD [ "node.exe" ]
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM node:6.4.0-nanoserver
2+
3+
RUN mkdir \app
4+
WORKDIR /app
5+
6+
ONBUILD COPY package.json package.json
7+
ONBUILD RUN npm install & rd /s /q %APPDATA%\npm-cache & for /d %G in ("%TEMP%\npm-*") do rd /s /q "%~G"
8+
ONBUILD COPY . .
9+
10+
CMD [ "npm.cmd", "start" ]

test-build.ps1

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
docker build --isolation=hyperv -t node:4.5.0-nanoserver 4.5/windows/nanoserver
2+
docker build --isolation=hyperv -t node:4.5.0-nanoserver-onbuild 4.5/windows/nanoserver/onbuild
3+
4+
docker build --isolation=hyperv -t node:6.4.0-nanoserver 6.4/windows/nanoserver
5+
docker build --isolation=hyperv -t node:6.4.0-nanoserver-onbuild 6.4/windows/nanoserver/onbuild

0 commit comments

Comments
 (0)