2016-05-20 66 views
1

目前我們使用node:4.2.3(LTS)docker鏡像,大小約642 MB,node_modules總共約140 MB〜800MB,用於構建我們的Web應用程序泊塢窗圖片。node.js所有環境的docker鏡像 - 包括生產

將這些圖像發佈到我們的私人註冊表中,並將它們拉到所有環境中成爲一個耗時的過程。

由於我們無法減少node_modules的大小(如果有任何減少方法可用,將會有所幫助)尋找建議,以便在所有環境(包括生產)中使用任何其他節點泊塢窗圖像。

回答

1

您可使用自己的碼頭工人,圖像下面Dockerfile

FROM ubuntu:14.04 

RUN sudo apt-get update && sudo apt-get install -y wget 

# install node v4.2.6 
RUN wget https://nodejs.org/dist/v4.2.6/node-v4.2.6-linux-x64.tar.gz && \ 
    tar -C /usr/local --strip-components 1 -xzf node-v4.2.6-linux-x64.tar.gz && \ 
    rm node-v4.2.6-linux-x64.tar.gz 

# install express 4.13.4 
RUN npm install [email protected] 

使用下面的命令來構建圖像:

sudo docker build -t ubuntu-node . 

圖像僅是255MB

REPOSITORY    TAG     IMAGE ID   CREATED    SIZE 
ubuntu-node    latest    7ed1b88adb46  7 seconds ago  255 MB 

當然,您可以安裝任何必要的依賴關係。

+0

255 MB是可以負擔得起的,我們可以減少它進一步 - 而不是採取「從Ubuntu的:14.04」任何其他非常小(20 -40 MB)的Linux DIS,並安裝節點的頂部。 關於[alpinelinux](http://www.alpinelinux.org)和[alpine-node](https://hub.docker.com/r/mhart/alpine-node/)的任何評論 – pktippa

+0

我不熟悉與alpinelinux或apline節點。在我看來,使用熟悉的操作系統基礎映像要好得多,因爲我們可能需要安裝其他依賴項。另外,使用docker時,圖像大小不是主要問題。 – KiwenLau

+0

我們已經成功地使用了高山linux並將其交付給客戶端,當然,我們現在使用Docker Trusted Registry識別出的高山linux基礎映像中存在一些安全漏洞。 – pktippa