Tag: docker

Node.js mongodb:db.collection不是一个函数

打字稿我想用这种方式使用mongo数据库: import { config } from '../config'; import { MongoClient } from 'mongodb'; MongoClient.connect(config.mdb_uri, (err, db) => { if ( err ){ console.log(err); return; } db.collection('mycollection').updateOne( { '_id': 'x' }, { $set: { 'info': 'OK' } }, { upsert: true } ); }); 但是这段代码导致docker容器exception: TypeError:db.collection不是一个函数 我已经添加了一个console.log(db) ,结果是一个MongoClient对象: MongoClient { domain: null, _events: {}, _eventsCount: 0, […]

NodeJS:如何做docker应用程序的nightmareJS e2etesting

我正在创build一个Docker镜像/容器,用于从我的高效构build应用程序(nodeJS应用程序)进行testing。 现在我想用摩卡/柴和噩梦做一些e2etesting。 所以我创build了一个非常基本的testing文件。 我的问题是现在如何testing正在运行的应用程序。 所以我想“加载”应用程序 – goto http://localhost – check if login form is existing – do login – check if login was successful 我不知道如何在我的docker image / e2e.js文件中做到这一点… 这是我如何创builddocker图像: Dockerfile # Use the production image as base image FROM productive_build:latest # Copy the test files COPY e2e.js / # Override the NODE_ENV environment variable to […]

Docker – Node.js + MongoDB – “错误:无法连接到”

我正在尝试为我的Node应用程序创build一个容器。 这个应用程序使用MongoDB来确保一些数据持久性。 所以我创build了这个Dockerfile : FROM ubuntu:latest # — Installing MongoDB # Add 10gen official apt source to the sources list RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10 RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list # Hack for initctl not being available in Ubuntu RUN dpkg-divert –local –rename –add /sbin/initctl RUN ln -s /bin/true […]

在Digitalocean上从Heroku切换到Docker

我有一个生产网站,每月有150到200.000个独立访问者,而且这个网站正在快速增长。 我有一个DigitalOcean水滴(4GB内存和60GB固态硬盘)的MongoDB数据库(20GB的数据)主机, NodeJs服务器在Heroku上的2 x Web Standard-1X上运行。 对于客户端部分我使用AngularJs。 我的package.json包含大约100个模块。 而bower.json包含约65个模块。 几乎所有的媒体都是Amazon S3上的主机。 现在你知道我的堆栈,我有多个问题: 该网站提供了很多从mongodb数据库生成的页面,但数据很less发生变化。 谁可以caching这个HTML页面? 我想将我的应用程序部署到DigitalOcean,并保持部署git的简单性。 我已经尝试过Dokku,但看起来不太稳定,我想自己安装堆栈以更好地理解我在做什么。 所以我曾尝试像Distelli部署工具,但我从来没有设法实际上看到我的液滴IP服务器。 我猜它必须是nginx相关的… 我已经尝试像Wercker一样的持续集成来构builddocker映像,将它们推送到Tutum并进行部署。 但build设时间和部署时间都很长,如8〜10分钟… 这是我的Dockerfile,需要花费大量的时间来构build,我怎么能加快速度呢? FROM node:latest RUN mkdir /src WORKDIR /src ADD . /src RUN npm install RUN npm install -g gulp RUN gulp default ENV NODE_ENV production ENV PORT 3000 EXPOSE 3000 CMD node server.js 那就是我现在的地方。 你对这种堆栈有什么build议? […]

在npm在docker容器中安装时损坏的依赖关系

我正在构build并运行以下docker-compose文件 gulp: image: node:4.4 volumes: – ./admin:/node working_dir: /node command: bash -c "npm install && npm install -g gulp-cli && gulp dev" npm install命令进行得很好,但是然后gulp失败,出现以下错误: admin-gulp_1 | npm info ok admin-gulp_1 | /node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js:88 admin-gulp_1 | SourceCode.splitLines = function(text) { admin-gulp_1 | ^ admin-gulp_1 | admin-gulp_1 | ReferenceError: SourceCode is not defined admin-gulp_1 | at Object.<anonymous> (/node/node_modules/gulp-eslint/node_modules/eslint/lib/util/source-code.js:88:1) […]

如何在docker上运行电子应用程序

我已经创build了一个托pipe一个电子应用程序,这是一个聊天客户端的存储库叉: https : //github.com/Serkan-devel/BetterDiscordApp-docker 。 我正在尝试做的是创build一个Docker容器,它的GUI挂在自己的屏幕上,就像https://blog.jessfraz.com/post/docker-containers-on-the-desktop/ 。 我创build的dockerfile如下所示: FROM node:slim COPY . /usr/scr/app #RUN rm bdstart.sh RUN npm install –save-dev electron RUN npm install #ENV FRESHINSTALL=true CMD ["/usr/scr/app/start.sh"] start.sh文件如下所示: ./node_modules/.bin/electron ./src 在构builddocker镜像并执行之后 docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY –device /dev/snd dixord 我得到错误代码: standard_init_linux.go:175: exec user process caused "exec format error" 尽pipe我使文件可执行并使用了正确的amd64架构。 有没有人想过如何使电子GUI的docker工作?

Node.js + Docker撰写:node_modules消失

我正在尝试使用Docker Compose将许多Node.js应用程序集成在开发环境中。 我遇到了一个问题,但是,与node_modules 。 这是发生了什么事情: npm install作为Dockerfile一部分运行。 我的本地目录中没有node_modules 。 (我不应该因为依赖关系的安装应该在容器中发生,对吗?这似乎打败了目的,否则,因为我需要在本地安装Node.js。) 在docker-compose.yml ,我使用源代码设置了一个volume 。 docker-compose build运行良好。 当我node_modules docker-compose up , node_modules目录在容器中消失 – 我假设因为卷被挂载,我没有在我的本地目录中。 我如何确保node_modules坚持到底? Dockerfile FROM node:0.10.37 COPY package.json /src/package.json WORKDIR /src RUN npm install -g grunt-cli && npm install COPY . /src EXPOSE 9001 CMD ["npm", "start"] docker-compose.yml api: build: . command: grunt links: – […]

Docker / bin / bash:找不到nodemon:命令

我试图从我的主机挂载我的工作节点代码到docker容器中,并使用docker-compose使用nodemon运行它。 但容器似乎无法findnodemon。 注意:我的主机没有安装节点或npm。 这里是我的项目(testing)的根文件夹中的文件。 (这只是一个粗略的草案) Dockerfile FROM surenderthakran/nodejs:v4 ADD . /test WORKDIR /test RUN make install CMD make run Makefile文件 SHELL:=/bin/bash PWD:=$(shell pwd) export PATH:= $(PWD)/node_modules/.bin:$(PWD)/bin:$(PATH) DOCKER:=$(shell grep docker /proc/1/cgroup) install: @echo Running make install…… @npm config set unsafe-perm true @npm install run: @echo Running make run…… # Check if we are inside docker container […]

节点预渲染工作在第一页加载 – 后续加载500错误

你可以validation这是事实。 点击链接,让它加载,然后刷新: http : //www.justinmcmahon.com/? _escaped_fragment_ = 可能意义重大:我的应用程序在端口3000上的docker容器中运行,而prerender服务器(在端口9000上)也运行,两者都在官方的Nginx docker镜像后面运行。 也可能意义重大:顶级域名具有.htaccessredirect到www子域,它指向一个AWS弹性IP。 我现在还不是很聪明,所以这是我现在提出的最好的方法来指出正确的方向。 .htaccessredirect RewriteEngine on RewriteRule ^(.*)$ http://www.justinmcmahon.com/$1 [R=301,L] Nginx的docker-compose.yml: nginx: build: . container_name: Nginx hostname: nginx restart: always environment: – DEFAULT_HOST=www.justinmcmahon.com volumes: – /var/run/docker.sock:/tmp/docker.sock:ro ports: – 80:80 – 443:443 – 5984:5984 Prerender Dockerfile FROM node:5.2.0 ENV NPM_CONFIG_PRODUCTION=true ENV NODE_ENV=production COPY dist /app WORKDIR /app RUN […]

在MongoDB聚合期间“服务器x超时”

我有一个脚本,定期在一个mongodb集合上运行聚合。 随着数据集的增长,聚合花费的时间也在增长。 我的聚合脚本最近停止工作一致,错误日志显示: error: { [MongoError: server <x> timed out] name: 'MongoError', message: 'server <x> timed out' }我试过debugging这个,我能find的唯一的模式是,这个超时似乎只发生在聚集时间超过2分钟(超过2米左右)。 有没有人有这个额外的debugging技巧? 2分钟的事情给我的印象是,我只需要configuration一些超时的地方,但我不知道在哪里,或者如果我只是陷入了一个红鲱鱼陷阱。 关于系统configuration:这个汇总脚本是在基于阿尔派的docker(v1.9.1)容器中运行的node.js(v5.9.1)应用程序。 它使用mongodb节点驱动程序(v2.1.19)。 单个mongodb服务器(虽然这也发生在一个单独的环境与replSet)运行mongod(v3.2.6)