Tag: node.js

可以在docker容器中运行npm / node,但不能在dockerfile中运行

我有dockerfile有基本的形象去,我安装npm /节点: FROM golang:1.7 RUN apt-get update && apt-get install -y wget ###node ENV NVM_DIR /usr/local/nvm ENV NODE_VERSION 6.10.1 RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash \ && . $NVM_DIR/nvm.sh \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION \ && nvm use default ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules ENV PATH $NVM_DIR/v$NODE_VERSION/bin:$PATH 当我启动这个容器时,我可以在容器中执行node或npm命令: docker exec -it […]

Docker不能识别npm install命令并抛出错误

我的Dockerfile如下所示: From ubuntu:14.04 WORKDIR /app #COPY package.json /app/package.json COPY . /app RUN npm install EXPOSE 3000 CMD ["npm","start"] 现在,当我运行命令sudo docker -t my-app . 。 它给了我以下错误: 发送构build上下文到Docker守护进程453.6 kB将构build上下文发送到Docker守护进程步骤0:FROM ubuntu:14.04 —> 37a9c4a8276c步骤1:WORKDIR / app —>使用caching—> a83d4ef27948步骤2:COPY。 / app —> 1029f5d7d8a3删除中间容器eb9e7ea7f7e6步骤3:运行npm install —>在5d4f2c05d2d8 / bin / sh中运行:1:npm:not found INFO [/ bin / sh -c npm install ]返回了一个非零的代码:127 我的Dockerfile中有什么遗漏吗?

在docker中安装节点v8

我如何在Docker容器中安装节点v8。 我想使用节点js版本8.我的Dockerfile应该在FROM行中说什么? 我目前有FROM nodesource/node:8 ,但似乎没有工作。 有什么build议吗?

从dokku容器中查找DNS

我正在Ubuntu服务器上运行dokku容器内的一个节点应用程序,该服务器也运行bind9的DNS。 在节点的应用程序,我运行快车。 在节点的应用程序,我正在运行一个DNS反向查找客户端的IP这样(简化): const dns = require('dns'); const app = require('express')(); app.get('/myhostname', (req, res) => { dns.reverse(req.headers['x-forwarded-for'], (err, hostnames) => { res.json({ hostname: hostnames[0] }); }); }); 这可以在本地正常工作,但是一旦部署到dokku容器,就会失败并出现ENOTFOUND错误。 据推测,这是因为该应用程序没有设置为使用Ubuntu服务器作为其DNS服务器。 所以我试过这个后require('dns') : dns.setServers([process.env.DNS_SERVERS]) 其中DNS_SERVERS设置为服务器的本地LAN IP或其泊坞窗内部IP。 这两个地址中的任何一个都会导致延迟,并最终超时尝试获取地址。 我应该怎么做呢?

添加package.json并在构builddocker镜像时安装被视为两个不同图层的模块?

FROM node:boron WORKDIR /app ADD package.json /app RUN npm install ADD . /app EXPOSE 3000 CMD ["node","app"] 所以我的问题是做两行ADD package.json , RUN npm install 。 在build造docker图像的同时将做出两个单独的图层或一个单独的图层?

docker桥接localhost端口

在本地计算机上有一个在Port 50160上运行的chatbot服务。 此端口用于接收来自泊坞窗容器中的nodejs-service的消息。 要将消息发送到聊天服务,docker-container将打开端口8080 。 这工作正常。 我开始使用docker run -p 8080:8080 registry.gitlab.com/abc/def/adapter-xyz 。 但是,从docker-container向chatbot发送响应将在docker容器中返回以下错误: ChatConnector: message received. Error: connect ECONNREFUSED 127.0.0.1:50160 at Object.exports._errnoException (util.js:1020:11) at exports._exceptionWithHostPort (util.js:1043:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14) 似乎它不能发送回应chatbot(在我的机器上运行)。 任何想法?

Dokku将我的Node.js应用程序识别为部署中的Go应用程序

我正在创buildProcfile的内容: web: node web.js 我的package.json: { "name": "app-express", "version": "0.0.1", "private": true, "description": "web panel", "main": "web.js", "scripts": { "start": "node web.js" }, "dependencies": { "async": "^0.2.10", … }, "engines": { "node": "0.10.x", "npm": "1.2.x" }, "keywords": [ "node" ] } 当我推送我的应用程序时,我看到: > git push digitalocean master Counting objects: 1207, done. Delta compression using up […]

如何使用Docker图自动加载代码更改

我有一个简单的节点程序app.js 我将包含文件夹的app.js文件挂载到了一个docker容器。 当我做fig up它的作品。 但是,当我改变app.js内容,并做fig stop和再次fig up的变化不加载。 我怎样才能确保无花果重新加载/重build每次我把它的形象? 我尝试了各种组合,但没有运气。 如何解决这个问题?

在监督器中运行docker中的node和nginx

我正在尝试在Docker容器中设置node和nginx,使用supervisor启动和监视这两个进程。 我有一个主pipeconf文件,启动nginx和节点。 问题是,当我尝试使用supervisorctl来访问他们没有find的服务。 所以我认为我一定是做错了什么。 supervisor.conf [supervisord] nodaemon=true [program:nodeServer] directory=/app/backend command=/nodejs/bin/node app.js autostart=true autorestart=unexpected user=www-app startsecs=10 stdout_logfile=/var/log/repositive.io/supervisor.log redirect_stderr=true [program:nginx] command=/usr/sbin/nginx stdout_events_enabled=true stderr_events_enabled=true dockerfile FROM google/debian:wheezy # update and install nginx and supervisor RUN apt-get update -y && \ apt-get install –no-install-recommends -y -q \ curl python build-essential git ca-certificates nginx-extras supervisor # install node RUN mkdir […]

从一个docker集装箱发送请求到另一个

我正试图将一些现有的服务器放置在docker集装箱内。 我有两个:一个应用服务器和一个API服务器,但用node.js开发。 我有他们都在一个Ubuntu的虚拟机内工作,可以从外面的两个应用程序,这是伟大的。 每个服务器都有自己的域。 应用服务器使用域应用程序 ,API服务器使用api域,我知道聪明。 在本地我添加了两个域到我的hosts文件,指向分配给Ubuntu vm的ip。 我遇到的唯一问题是从应用服务器发送的需要路由到api服务器的请求。 试图编辑应用程序服务器容器(通过Dockerfile)和ubuntu vm的主机文件,但请求失败。 有没有一种简单的方法来获得该请求不出去,并尝试解决的API域,但得到它指向的API容器?