Tag: npm

如何使用Jenkins在HTTP_PROXY后面创buildDockerfile?

构buildDocker镜像可以在桌面上正常工作。 安装Node.js NPM依赖性照常工作。 但是,如果使用托pipe在公司代理之后的持续集成服务器(如Jenkins),那么构buildDocker镜像将失败。 Node.js NPM依赖关系 在构buildNode.js pacakges时,如果在克隆GIT依赖项时无法连接到GIT,则命令npm install会失败。 e1ce5e8407d1: Already exists Status: Image is up to date for node:0.10.33 —> e1ce5e8407d1 Step 1 : RUN mkdir -p /usr/src/app —> Using cache —> 965cad0c68b0 Step 2 : WORKDIR /usr/src/app —> Using cache —> 4c498f0c07e9 Step 3 : COPY package.json /usr/src/app/ —> b0662a8275fb Removing intermediate container […]

Dockerfile中的开发依赖关系或用于生产和testing的Docker文件

我不知道是否应该为我的Node.js应用程序创build不同的Dockerfile文件。 一个用于没有开发依赖项的生产,另一个用于包含开发依赖项的testing。 或者基本上是开发Dockerfile.dev一个文件。 那么这两个文件的主要区别在于npm install命令: 生产: FROM … … RUN npm install –quiet –production … CMD … 开发/testing: FROM … … RUN npm install … CMD … 出现这个问题是因为我想通过docker run命令在容器内运行我的testing。 因此,我需要testing依赖项(通常是我的开发依赖项)。 看起来有点奇怪把生产中不需要的依赖关系放到图像中。 另一方面,创build/维护第二个Dockerfile.dev只是微小的差异似乎也是不正确的。 那么这种问题有什么好的做法?

更新gem时,Docker bundle安装caching问题

我在开发和生产中都使用docker,而一件真正让我感到困惑的事情是docker cache的简单性。 我有ruby应用程序需要bundle install来安装依赖关系,所以我从下面的Dockerfile开始: ADD Gemfile Gemfile ADD Gemfile.lock Gemfile.lock RUN bundle install –path /root/bundle所有依赖项都被caching,直到我添加一个新的gem。 即使我已经添加的gem只是0.5 MB,它仍然需要10-15分钟从头开始安装所有的应用程序的gem。 然后再用10分钟来部署它,由于依赖关系文件夹的大小(约300MB)。 我遇到了与node_modules和npm完全相同的问题。 我想知道,有没有人find解决这个问题? 我的研究成果迄今为止: 源到图像 – 在增量构build中caching任意文件。 不幸的是,由于它的工作方式,即使没有改变gem,它也需要将整个300MB推送到registry中。 生成速度更快 – 即使在没有更新的情况下,也能更快地部署。 Gemfile.tip – 将Gemfile分割为两个不同的文件,只将gem添加到其中的一个。 非常具体的解决scheme捆绑,我不相信它会超越增加1-2gem的规模。 鱼叉 – 如果不是强迫抛弃Dockerfile并切换到它们自己的格式,这将是一个很好的select。 这意味着团队中的所有新开发者都会感到特别痛苦,因为这个工具集需要时间与Docker分开学习。 暂时打包caching。 这只是一个我不确定的想法。 以某种方式将包pipe理器caching(而不是依赖关系文件夹)带到机器上,然后再删除它。 基于我的破解,它显着加快了package和npm的安装,而不会让机器在不必要的caching文件中膨胀。

Docker:npm安装在代理之后

我有这个Dockerfile: FROM node:argon ENV http_proxy http://user:pass@proxy.company.priv:3128 ENV https_proxy https://user:pass@proxy.company.priv:3128 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install # Bundle app source COPY . /usr/src/app EXPOSE 8080 CMD [ "npm", "start" ] 但是我得到这个错误,在npm安装步骤中: npm信息它工作,如果它结束了npm信息使用npm@2.14.12 npm信息使用node@v4.2.6 npm WARN package.json deployer-ui@1.0.0没有描述npm警告package.json deployer-ui@1.0。 0没有存储库字段。 npm WARN package.json deployer-ui@1.0.0没有README数据npm info预安装deployer-ui@1.0.0 npm info尝试registry请求在7:09:23 […]

Jenkinspipe道中的npm安装失败

我已经创build了一个docker镜像,能够运行node> = 7.9.0和monogodb在Jenkins中进行testing。 有些人可能会说,使用mongodb进行testing不是正确的方法,但应用程序广泛使用它,我有一些复杂的更新和删除,所以我需要在那里。 Docker文件在我的github仓库中的dockerfiles / test / Dockerfile下。 在使用stream水线语法时,docker映像已经成功创build,但是我不能在stream水线的步骤中执行sh'npm install'或sh'npm -v'。 docker的图像进行了testing,如果我在本地构build并运行它,我可以在那里做npm安装。 sh'node -v'在pipe道中成功运行,同时也是sh'ls'。 这是pipe道语法。 pipeline { agent { dockerfile { dir 'dockerfiles/test' } } stages { stage('Build') { steps { sh 'npm install' } } } post { always { echo 'I will always say Hello again!' } } } 我得到这个错误:错误:脚本返回退出代码-1。 我在这里看不到任何错误。 我也用相同的结果testing了其他节点图像。 […]

npm在Docker内部安装后访问node_modules

我在Mac上运行Docker Machine和Docker Machine。 我成功地设置了一些容器,并在其中运行npm install,如此处所述。 这会在图像内部和容器内部安装node_modules,但是它们在主机上不可用,即我的IDE抱怨缺lessnode_modules。 我错过了什么吗? 在容器中运行npm install的最好方法是什么,但是能够在主机上进行开发(与这些依赖关系)? 从我的docker-compose.yml: volumes: – /Users/andre/IdeaProjects/app:/home/app – /home/app/node_modules