Tag: node.js

用一个等待的bash设置一个docker容器来安装npm模块

我正在尝试做一些非常微不足道的事情。 对于我的开发环境,我希望能够在我的容器中有一个shell,所以我可以运行命令,如npm install或npm run xxx。 (我不想在构build期间安装我的npm模块,因为我想将它们映射到主机,这样我的编辑器就能够在主机上find它们,我不想在主机上执行npm install,因为我不不希望主机必须安装npm)。 所以,即使在生产容器中,我会指示我的容器只运行节点,在我的开发人员容器中,我希望有一个始终在等待的bash。 如果我将入口点设置为/ bin / bash,容器立即退出。 这意味着我不能再附加它(因为它停止),并启动它将立即退出它。 我试着写一个小的.sh来循环,然后再次启动/ bin / bash,但是在我的ENTRYPOINT中使用它会产生一个错误,即找不到.sh文件,即使我知道它在容器中。 有任何想法吗?

消息:读取ECONNRESET,堆栈:错误:从Docker容器内的Go客户端调用HapiJs服务器时读取ECONNRESET

节点版本 :6.11.1 平台 :docker集装箱内的Ubuntu 14.04。 子系统 :http 在运行hapijs服务器的Node项目中调用端点时遇到一个非常特殊的问题。 当端点被直接击中时,没有任何问题。 但是当我们从gohaqd实例中find它时,我们得到: 170809/044343.745, [log,connection,client,error] message: write EPIPE, stack: Error: write EPIPE at exports._errnoException (util.js:1018:11) at WriteWrap.afterWrite (net.js:800:14) 更经常 170809/040643.248, [log,connection,client,error] message: read ECONNRESET, stack: Error: read ECONNRESET at exports._errnoException (util.js:1018:11) at TCP.onread (net.js:568:26) 我知道错误代码意味着某个地方,应用程序正试图写入一个封闭的连接。 但是对于我的生活,我无法弄清楚在哪里。 日志本身是来自hapijs,如果我没有错, 这条线 ,但无法弄清楚为什么节点试图写封闭的连接,无论如何。 记住,这没有任何副作用。 该应用程序运行良好:| 我们打开了NODE_DEBUG=http, net ,得到如下结果。 阅读这些内容时,唯一突出的就是在第二次write ret = true行出现两次,如果这意味着什么的话。 […]

将命令parameter passing给docker api

我试图find相当于 docker run -it networkstatic/nflow-generator -t localhost -p 9995 当使用docker API(我正在使用dockerode,但HTTP API的答案是一样好)。 我试过这个没有运气: docker.createContainer({ Image: 'networkstatic/nflow-generator', Args: [ '-t', 'streamsets-dc', '-p', '9995' ] }); 如何在没有命令的情况下传递参数?

增加nginx响应超时

我有ngnix服务器代理传入请求到另一个ngnix运行的docker,它将请求转发到nodejs服务器。 有时我的nodejs服务器需要10-15分钟才能回复。 但是在nodejs服务器响应之前,我得到了502 Bad Gateway 。 我试图增加主机上的ngnix服务器和docker上的另一个ngnix服务器上的ngnix超时,但似乎没有工作 client_header_timeout 15m; client_body_timeout 15m; send_timeout 15m; proxy_read_timeout 15m; proxy_connect_timeout 15m;

无法读取Node.js中的Docker环境文件的内容

我在docker-compose文件中指定了env文件accounts.env : version: "3.3" services: web: env_file: accounts.env build: context: . dockerfile: Dockerfile.test depends_on: – mysql volumes: – .:/app – /app/node_modules ports: – 3000:3000 mysql: image: mysql:5.5 environment: – MYSQL_ROOT_PASSWORD=*** – MYSQL_DATABASE=*** – MYSQL_USER=*** – MYSQL_PASSWORD=*** ports: – 3306:3306 migrations: image: micheleminno/db-migrations:latest environment: – NODE_ENV=development depends_on: – mysql 这是env文件: accountSize = 28 user1screenName = *** […]

使用docker sdk从Web应用程序向Docker机器发送命令

我是Docker的新手,在理解如何使用它方面遇到一些困难。 现在,我想知道是否有意义尝试发送命令到我的计算机上的docker机使用像Dockerode的SDK的JavaScript Web应用程序的客户端脚本。 我为Windows(17.06.0-ce)和Docker Toolbox安装了Docker CE,并且使用dockerterminal在默认机器上运行了一个容器。 现在我想知道我input的命令是否可以使用NodeJS从Web应用程序发送。 我试着用这个代码: import Docker from 'dockerode'; const docker = new Docker({host: 'myDefaultMachineHost'}); export function createLocalDb () { docker.pull('someImageFromDockerHub', function (err, stream) { if (err) console.log("Catch : " + err.toString()); stream.pipe(process.stdout, {end: true}); stream.on('end', function() { //run the container }).catch(function (err) { console.log("Catch : " + err.toString()); }); }); } […]

在使用docker&docker撰写时访问打字稿中的节点模块

我正在尝试在开发过程中创build一个托pipeNodeJS项目的Docker镜像。 它只是使用nodemon执行NodeJS应用程序,所以每次进行更改时都会重新启动。 我也使用TypeScript来开发应用程序。 TypeScript必须有权访问已安装的@types模块。 但是,应该显示node_modules文件夹的安装卷是空的。 所以TypeScript找不到模块,不能编译。 我的IDE也抱怨(显然) 有什么办法可以使TypeScript的node_modules可见吗? 这是我的Dockerfile: FROM node:alpine # Create app directory WORKDIR /usr/src/app # Install app dependencies COPY package.json . RUN npm install # Bundle app source COPY . . # Run app CMD [ "npm", "start" ] 这是我的docker-compose.yml: version: "3" services: server: build: . environment: – NODE_ENV=development command: npm run […]

如何解决express服务器的依赖关系build立dist /

我使用webpack捆绑前端资产,并把它们放在dist目录中。 不过,我也希望有一个快递服务器来服务index.html html-webpack-plugin生成,也存储在dist 。 快递服务器需要几个节点模块,主要是expression,身体分析器,时刻等。 尽pipe如此,在dist没有node_modules ,所以它是在找不到express的第一个障碍。 我应该为这个小型快递服务器制作一个单独的package.json,并将其保存在远处,并将它的npm install放在我的Dockerfile的一个单独的行上(似乎有点复杂…),还是有更好的方法来实现这个服务器解决它的依赖关系后,webpacking? Dockerfile FROM node:8.4.0-alpine WORKDIR /opt/app COPY ./node_modules node_modules COPY ./dist . EXPOSE 6500 ENTRYPOINT ["node", "server.js"] 第5行是临时尝试查看是否将所有node_modules移动到应用程序根目录将允许服务器运行。 它当然包括了从express和body-parser到响应和webpack-dev-server的所有内容。

在Google云上部署应用程序时发生纱线错误

我一直在尝试使用Kubernetes在Google云上部署此应用程序( https://github.com/DivanteLtd/open-loyalty/ )。 用于部署此应用程序的实例包含Debian v4.9作为其操作系统。 我们安装了Docker,GCloud,Kubernetes和Kompose作为部署工具。 我为前端和后端构build了两个docker镜像,并将它们链接到docker-compose文件。 现在在前端模型中,我们在前端的Dockerfile中使用了来自docker hub的(node:5)图像。 下面给出的是前端容器的docker文件。 FROM node:5 RUN apt-get update \ && apt-get install -y ruby-full rubygems \ && gem instal sass RUN npm install -g gulp node-sass yarn COPY . /var/www WORKDIR /var/www EXPOSE 3000 CMD npm rebuild node-sass && yarn install && gulp config –prod && gulp compile […]

'/ bin / sh -c npm i'返回一个非零的代码:1

docker工问题,当我运行 docker-compose build 我想运行docker,但它不工作,它给我这个错误: 错误:服务'ms-blabla-api'未能build立:命令'/ bin / sh -c npm i'返回非零代码:1 我试图改变我的节点版本和我的docker版本,但没有。 那是我的docker文件: FROM node RUN npm i -g pm2 WORKDIR /root/ops-api COPY ./ /root/ops-api RUN chmod -R 777 /root/ops-api/node_modules RUN npm i RUN chmod -R 777 /root/ops-api/node_modules RUN export NODE_PATH=/usr/local/lib/node_modules CMD ["/bin/bash", ".docker/start.sh"] 这是我的start.sh #! /bin/bash cd $PWD; pm2-docker start process.json 没有什么工作只是这个错误我得到。 docker上的其他项目工作正常,除了这一个。