mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-12-01 02:38:54 +00:00
152 lines
5.0 KiB
Markdown
152 lines
5.0 KiB
Markdown
## [Node.js](https://hub.docker.com/_/node/)
|
|
|
|
### 基本信息
|
|
[Node.js](https://en.wikipedia.org/wiki/Node.js)是基于 JavaScript 的可扩展服务端和网络软件开发平台。
|
|
|
|
该仓库位于 https://hub.docker.com/_/node/ ,提供了 Node.js 0.10 ~ 6.3.x 各个版本的镜像。
|
|
|
|
### 使用方法
|
|
在项目中创建一个 Dockerfile。
|
|
|
|
```
|
|
FROM node:0.10-onbuild
|
|
# replace this with your application's default port
|
|
EXPOSE 8888
|
|
```
|
|
然后创建镜像,并启动容器。
|
|
|
|
```
|
|
$ docker build -t my-nodejs-app
|
|
$ docker run -it --rm --name my-running-app my-nodejs-app
|
|
```
|
|
|
|
也可以直接运行一个简单容器。
|
|
|
|
```
|
|
$ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp node:0.10 node your-daemon-or-script.js
|
|
```
|
|
|
|
### Dockerfile
|
|
|
|
#### 0.10 版本
|
|
```
|
|
FROM buildpack-deps
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
ca-certificates \
|
|
curl
|
|
|
|
# verify gpg and sha256: http://nodejs.org/dist/v0.10.31/SHASUMS256.txt.asc
|
|
# gpg: aka "Timothy J Fontaine (Work) <tj.fontaine@joyent.com>"
|
|
RUN gpg --keyserver pgp.mit.edu --recv-keys 7937DFD2AB06298B2293C3187D33FF9D0246406D
|
|
|
|
ENV NODE_VERSION 0.10.32
|
|
|
|
RUN curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" \
|
|
&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
|
&& gpg --verify SHASUMS256.txt.asc \
|
|
&& grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - \
|
|
&& tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 \
|
|
&& rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc
|
|
|
|
CMD [ "node" ]
|
|
```
|
|
|
|
#### 4.x 版本
|
|
```
|
|
FROM buildpack-deps:jessie
|
|
|
|
# gpg keys listed at https://github.com/nodejs/node
|
|
RUN set -ex \
|
|
&& for key in \
|
|
9554F04D7259F04124DE6B476D5A82AC7E37093B \
|
|
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
|
|
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
|
|
FD3A5288F042B6850C66B31F09FE44734EB7990E \
|
|
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
|
|
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
|
|
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
|
|
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
|
|
; do \
|
|
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
|
|
done
|
|
|
|
ENV NPM_CONFIG_LOGLEVEL info
|
|
ENV NODE_VERSION 4.4.7
|
|
|
|
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
|
|
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
|
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
|
|
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
|
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
|
|
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
|
|
|
|
CMD [ "node" ]
|
|
```
|
|
|
|
#### 5.x 版本
|
|
|
|
```
|
|
FROM buildpack-deps:jessie
|
|
|
|
# gpg keys listed at https://github.com/nodejs/node
|
|
RUN set -ex \
|
|
&& for key in \
|
|
9554F04D7259F04124DE6B476D5A82AC7E37093B \
|
|
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
|
|
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
|
|
FD3A5288F042B6850C66B31F09FE44734EB7990E \
|
|
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
|
|
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
|
|
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
|
|
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
|
|
; do \
|
|
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
|
|
done
|
|
|
|
ENV NPM_CONFIG_LOGLEVEL info
|
|
ENV NODE_VERSION 5.12.0
|
|
|
|
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
|
|
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
|
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
|
|
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
|
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
|
|
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
|
|
|
|
CMD [ "node" ]
|
|
```
|
|
|
|
#### 6.x 版本
|
|
```
|
|
FROM buildpack-deps:jessie
|
|
|
|
# gpg keys listed at https://github.com/nodejs/node
|
|
RUN set -ex \
|
|
&& for key in \
|
|
9554F04D7259F04124DE6B476D5A82AC7E37093B \
|
|
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
|
|
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
|
|
FD3A5288F042B6850C66B31F09FE44734EB7990E \
|
|
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
|
|
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
|
|
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
|
|
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
|
|
; do \
|
|
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
|
|
done
|
|
|
|
ENV NPM_CONFIG_LOGLEVEL info
|
|
ENV NODE_VERSION 6.3.1
|
|
|
|
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
|
|
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
|
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
|
|
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
|
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
|
|
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
|
|
|
|
CMD [ "node" ]
|
|
```
|
|
|