Tag: node.js

docker集装箱不能克隆公共Github回购

我猜这是一个互联网连接问题,但是,可能有一些RSA公钥丢失。 我有这个Dockerfile: FROM node:4-onbuild COPY test-install-post-publish.sh /usr/src/app/ EXPOSE 8888 获取COPY到容器的bash脚本如下所示: #!/usr/bin/env bash cd # cd to home dir mkdir suman-test cd suman-test && rm -rf suman-test-projects && git clone git@github.com:sumanjs/suman-test-projects.git && cd suman-test-projects && ./test-all.sh 我运行容器,我得到这个: npm info it worked if it ends with ok npm info using npm@2.15.11 npm info using node@v4.6.2 npm info […]

开发环境NodeJS和Docker

我创build了下面的Dockerfile ROM node:argon # Create app directory 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" ] 当我构build和运行Docker镜像时,一切正常 但是,当我跑步 docker run -p 8080:8080 -v ~/projects/NodeJSExample/:/usr/src/app/ nodeexample 我有 : Error: Cannot find module 'express' at Function.Module._resolveFilename […]

使用Docker实时重新加载Node.js开发环境

我正在尝试使用Node.js和Docker开发一个开发环境。 我希望能够: 运行我的docker容器,当我一次启动我的电脑; 在我的本地源代码中进行更改,并在不与Docker容器交互的情况下(使用装载)查看更改。 我已经尝试了Node图像 ,如果我理解正确,它不是我正在寻找的。 我知道如何设置挂载点,但我错过了服务器应该如何检测更改并“重新启动”本身。 我是Node.js的新手,所以如果有更好的方法去做,可以随意分享。

我应该怎样在Docker容器中运行大拇指服务?

我想在节点Docker镜像中运行thumbd作为服务! 目前我只是在启动我的应用程序之前运行它,这对我没有用处! 有没有一种方法可以设置我的Dockerfile在启动时将其作为init.d服务运行,而不会阻塞我的其他docker命令? 我的Dockerfile如下所示: FROM node:6.2.0 # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install # Thumbd RUN npm install -g thumbd RUN mkdir -p /var/log/ RUN echo "" > /var/log/thumbd.log RUN thumbd server –aws_key=<KEY> –aws_secret=<SECRET> –sqs_queue=<QUEUE> –bucket=<BUCKET> –aws_region=us-west-1 –s3_acl=public-read # Bundle app source […]

将nodejs应用程序从另一个容器链接到Rethinkdb

我做了两个2容器,一个用于RethinkDB,一个用于nodejs应用程序。 我想连接我的nodejs应用程序到这个RethinkDB,但每次我尝试得到一个错误 错误:{“message”:“无法连接到本地主机:58015 \ n完全错误:\ n {\”code \“:\”ECONNREFUSED \“ 但是我可以将不用Docker运行的同一个nodejs应用程序连接到RethinkDB,并打开端口( 58015 )。 我的Docker组合configuration看起来像这样 # Rethink DB rethink: build: docker/rethinkdb container_name: rethink ports: – 58080:8080 – 58015:28015 – 59015:29015 # NodeJS nodejs: build: docker/nodejs container_name: nodejs ports: – 53000:3000 – 55000:5000 depends_on: – rethink 为了将我的应用程序连接到数据库,我在JSconfiguration文件中设置了主机和端口 database: { servers: [ { host: process.env.DB_PORT_28015_TCP_ADDR || 'localhost', port: process.env.DB_PORT_28015_TCP_PORT […]

创build一个依赖于docker for node.js模块的testing是否可以接受?

我目前有一个模块需要在不同的场景下进行testing。 但是为了改进testing,我有很多文件复制和child-process执行。 也许Docker是运行testing的一个很好的解决scheme,但是这会增加对Docker的依赖。 另外我还没有看到依赖于docker的软件包。 那么对于一个npm包,发布一个依赖docker的testing包是否可以接受呢?

在Docker中使用'opn'npm模块的未处理诺言拒绝

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Exited with code 3 我显然遇到这个错误,当我打开使用Docker容器模块的链接。 在将代码放在使用Docker的服务器上之前,我在本地testing了代码。 而且它在我的本地运行良好,不使用Docker。 所以我认为docker工人出了问题,但实际上没有办法找出问题所在。 是否有人曾经使用Docker的“opn”模块? app.use('/:encoded_id', function(req, res) { let base58Id = req.params.encoded_id; let id = base58.decode(base58Id) Url.findOne({ _id:id }, function(err, doc) { if (err) console.error(err); if (doc) { opn(doc.long_url[i]); } else res.redirect(config.webhost); }) });

2个进程在同一个端口?

我正在Docker容器中运行一个节点应用程序。 这是dockerfile FROM maven:3.3.3-jdk-8 #install node RUN apt-get update RUN apt-get -qq update RUN apt-get install -y nodejs npm # TODO could uninstall some build dependencies RUN update-alternatives –install /usr/bin/node node /usr/bin/nodejs 10 # Install packages for envsubst RUN apt-get update && apt-get upgrade -y –force-yes && rm -rf /var/lib/apt/lists/*; RUN apt-get update RUN apt-get […]

如何通过用户名和密码保护在Docker容器中运行的Web应用程序?

我写了一个Node.js Web应用程序,它被封装成一个Docker镜像。 我可以运行这个图像,一切都很好。 现在我想显示Web应用程序,所以我想在互联网上的服务器上运行Docker镜像 – 但我不希望它公开给每个人。 作为最低级别的保护,我想补充一点,您需要input您的用户名和密码 – 无需更改Web应用程序或其Docker镜像 。 我怎么能这样做? 我能想到的一个select就是不要公开Docker镜像,而是使用例如Nginx,然后使用Node.js镜像作为上游,但在通过之前处理身份validation。 这听起来是否合理,还是有一个更简单的方法?

如何从另一个容器获取容器Ip?

我有以下docker-compose文件: version: '2' services: node: build: ./node/ ports: – "3000:3000" volumes: – ~/src/api:/code links: – postgres environment: – NODE_ENV=dev – POSTGRES_ADDRESS=postgres postgres: build: ./postgres/ ports: – "8000:5432" environment: – POSTGRES_PASSWORD=pw volumes: – ~/Postgres/data/:/var/lib/postgresql/data 但是当我在我的nodejs中访问process.env.POSTGRES_ADDRESS时,它返回'postgres'。 这是我一直这样做的方式,它应该返回postgres容器的IP。 任何build议如何我可以访问postgres容器IP?