Tag: node.js

Docker公开不起作用

题: 我使用Docker和Aurelia创build了一个简单的网站。 该站点在Docker中运行,但不能从我的本地主机访问。 我做了什么: 创build容器 docker build -t randy/node-web-app . docker run -p 9000:9000 -d randy/node-web-app 97f57c3d0da5d03f53b4ba893fdb866ca528e10e6c4a1b310726e514d8957650 看看脚本是否运行: docker logs 97f57c3d0da5 应用程序可用在: http:// localhost:9000 进入docker集装箱docker,看看该网站是否正在运行: docker exec -it 97f57c3d0da5 /bin/bash 看看它是否运行: curl -i localhost:9000 概要: HTTP / 1.1 200 OK <!DOCTYPE html> (我实际上看到了它应该返回的HTML,但这太大了,不能在这里发布。) 返回主机terminal: exit curl -i localhost:9000 curl:(7)无法连接到本地端口9000:连接被拒绝 我怎样才能确保我可以从我的电脑访问该网站? 在第一个命令中,我已经在9000:9000上设置了公开,所以不应该是个问题。 Dockerfile: FROM node:latest RUN […]

如何在Dockerfile中告诉我input“docker run”命令时要执行的命令?

这是我的dockerfile的开始: FROM ubuntu:latest RUN apt-get update RUN apt-get install node RUN apt-get install npm RUN apt-get install mongo RUN mkdir app COPY . app/ WORKDIR app 当我inputdocker run <image name> ,我的容器必须运行node index.js我必须做什么呢?

Docker中使用入口点的节点webservice失败,但在其他情况下工作

我正在Docker容器中运行节点Web服务。 当我运行入口点的Docker容器 CMD ["node", "app.js"] 它给了我下面提到的错误。 当我使用 CMD /bin/bash 并inputcontianer并运行节点app.js然后我的应用程序正常工作 这是错误的: Error: Module did not self-register. at Error (native) at Object.Module._extensions..node (module.js:435:18) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at bindings (/usr/src/app/controlcenter/node_modules/bindings/bindings.js:76:44) at Object.<anonymous> (/usr/src/app/controlcenter/node_modules/couchbase/lib/binding.js:143:36) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) […]

docker后面的nginx代理中的node.js代理应用程序

我正在尝试将nginx代理设置为node.js代理,以便在docker中启用elasticsearch应用程序。 nginx version: nginx/1.10.0 – installed on the machine, not in docker Docker version 1.12.5, build 047e51b/1.12.5 CentOS Linux release 7.3.1611 (Core) docker run -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -p 127.0.0.1:9200:9200 mydocker/es_kibana_proxy -b 0.0.0.0 search-elasticsearch-dev-tdxka.us-east-1.es.amazonaws.com netstat -nlp: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 […]

从Docker容器到LAN IP的HTTPS请求失败,但是curl起作用

我正在开发可在我的局域网上访问的embedded式设备。 我想从包含我的开发环境的Docker容器中向它的API发出一个请求。 该设备暴露于https://172.16.1.92 (当然,它没有正确的HTTPS证书)。 我可以成功访问我的浏览器中的这个URL,一切正常。 如果我运行这个: docker run -it –rm node:5 curl –insecure https://172.16.1.92/api 我看到了预期的结果(一个JSON对象)。 但是,编写一个快速的JStesting脚本之后: var https = require('https'); https.request({ host: '172.16.1.92', method: 'GET', path: '/api', timeout: 5 * 1000, rejectUnauthorized: false, // for the lack of certificate }, function(res) { console.log(res.statusCode); }); 并运行它: docker run -it –rm -v `pwd`:/code -w /code node:5 node […]

无法将dockerised keystone容器与dockerised mongo容器连接起来

我试图得到一个dockerised keystoneJS与dockerised mongoDB实例对话,我正在努力查看我将哪里错误链接在一起。 我已经通过在线的Docker文档和类似的例子来尝试做我正在做的事情,但是我仍然无法让这两个人互相交stream。 主要的问题是无法find“localhost:27017”或错误:无效的mongodb uri。 必须以“mongodb://”开始收到:“mongodb:// mongo:27017 /” 以下是相关文件: Dockerfile for keystone FROM node:6.9.1 RUN mkdir -p /docker WORKDIR /docker COPY . /docker RUN npm install –no-optional CMD ["node", "keystone.js"] 泊坞窗,compose.yml version: '2' services: keystone: image: keystone-test ports: – "3000:3000" depends_on: – mongo networks: – localnetwork environment: – MONGO_URI="mongodb://mongo:27017/" mongo: image: mongo:3 command: mongod […]

在nodejs高山泊坞窗图像上导出不被接受

我想添加一个http_proxy环境variables到nodejs高山docker图像。 Dockerfile看起来像这样 FROM node:6-alpine RUN export RUN export https_proxy='http://myproxy:8080' RUN export http_proxy='http://myproxy:8080' RUN export 运行时的输出 docker build -t myimage:latest . 看起来像这样 Step 1/5 : FROM node:6-alpine —> 66cf88e4fc20 Step 2/5 : RUN export —> Running in 61f5bda7989d export HOME='/root' export HOSTNAME='26ba10d264c2' export NODE_VERSION='6.9.5' export NPM_CONFIG_LOGLEVEL='info' export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' export PWD='/' export SHLVL='1' —> f04aeb89f7d0 Removing intermediate […]

如何填充docker-compose.yaml中的卷

我开始写我的第一个docker-compose.yml文件来设置组成我的应用程序的服务(所有node-js)的组合。 其中一个服务(web-server-bespoke,不是express)既有一大组模块,也有一组更大的bower_components。 为了提供关注点的分离,所以我可以更紧密地控制版本控制,我想创build两个存放node_modules和bower_components的命名卷,并将这些卷挂载到Web服务器服务的相关目录中。 令我困惑的问题是如何在启动服务时获得这两个卷。 我的困惑有两个原因: docker-compose的行为docker-compose与-d标志docker-compose ,而docker run命令与-d标志组合 – Web服务显然需要保持运行(如果失败,实际上需要重新启动),而可能填充一个或另一个的容器的卷是运行一次,因为整个应用程序是由docker-compose up命令提出的。 我可以控制这个吗? 正在运行的服务和该服务的build命令。 我真的可以使用Dockerfiles来运行npm install和bower install 。 特别是,如果我更改了Web应用程序的源代码,但是模块和bower_components不会更改,那么由于caching的结果,此构build步骤会瞬间完成吗? 我一直无法find这种行为的例子,所以我很困惑如何去做。 有人可以帮忙吗?

Docker-compose依赖于Docker环境之外的本地安装包

我正在使用docker-compose在我的本地环境中创build自己的图像,但是我遇到了一些问题。 看起来像做docker-compose up ,Docker compose不会运行,除非我在Docker之外的项目中本地安装了所有的软件包。 这是情景。 我有一个包简单的index.js文件( express ) const app = require('express')(); app.get('/health', (req, res) => res.status(200).send('ok')); app.listen(8080, () => console.log('magic happens here')); 一个Dockerfile来构build图像 FROM node:6.9.5 RUN mkdir -p /var/log/applications/test_dc RUN mkdir /src WORKDIR /src COPY package.json /src COPY . /src RUN npm install VOLUME ["/src", "/var/log/applications/test_dc"] EXPOSE 8080 CMD ["npm", "start"] 和一个docker-compose.yml文件启动项目(我已经删除链接的图像,以保持最小) version: […]

在Docker容器中启动多个服务

在我的Dockerfile中,我有以下几点: # Start app and proxy CMD service nginx start CMD ["nodejs", "/src/index.js"] 这样做,Node服务器正在运行,但不是nginx。 同样,如果我做的是这样的: # Start app and proxy CMD service nginx start && nodejs /src/index.js 那么nginx正在运行,但不是Node。 我可以忽略明显的东西吗?