Tag: node.js

使用docker和docker-compose来运行npm install和bower install

我正在尝试使用docker和节点映像来运行npm install和bower install 。 这里是我docker-compose.yml的相关部分: node: image: node:0.10.40 volumes: – ./package.json:/package.json – .bowerrc:/.bowerrc – ./bower.json:/bower.json – ./build/npm.tmp/node_modules:/node_modules – ./build/npm.tmp/bignibou-client/src/bower_components:/bignibou-client/src/bower_components command: bash -c "npm install && bower install" ports: – "8888:8888" 不幸的是我从节点得到以下错误: node_1 | bash: bower: command not found bignibousite_node_1 exited with code 127 指示命令没有正确解释。 我也尝试在我的package.json中使用post-script,如下所示: "scripts": { "postinstall": "/node_modules/bower/bin/bower install" } 这是我的.bowerrc : { "json": […]

HaProxy +docker运行状况检查重启死容器

这是一个相当概念性的问题。 我在Docker容器中运行三个node.js web服务器作为HaProxy实例后面的Docker容器。 容器由docker-compose开始,所以一切都很标准。 我的问题 :HaProxy做健康检查,看看我的一个node.js容器死去redirectstream量,到目前为止好。 但是我无法find一个很好的解决scheme来自动重启死容器。 有没有什么好的做法呢?

在Docker容器中编译Node.js 4.0.0源代码时,使testing失败

在Python 2.7.10 docker容器中编译Node.js 4.0.0源代码时发生了一个make test失败。 首先,我只是用Docker官方的Python 2.7.10镜像运行一个容器,容器有gcc 4.9,make 4.0,python 2.7,它们满足了Node.js 4.0.0的需求。 然后在容器中操作(login到容器的shell)。 在/ usr / src / nodejs中下载Node.js 4.0.0的源代码,并在下面运行 ./configure && make && make install && make test 该进程在make test停止,错误信息是: === release test-tick-processor === Path: parallel/test-tick-processor nm: '/var/lib/docker/aufs/diff/9f4978cc45a4e08268de6e77e49c6e837ab58eb204846975b6db6e5474769d7b/usr/src/nodejs/out/Release/node': No such file nm: '/var/lib/docker/aufs/diff/843e2bded49837e4846422f3a82a67be3ccc46c3e636e03d8d946c57564468ba/lib/x86_64-linux-gnu/libc-2.19.so': No such file nm: '/var/lib/docker/aufs/diff/843e2bded49837e4846422f3a82a67be3ccc46c3e636e03d8d946c57564468ba/lib/x86_64-linux-gnu/libpthread-2.19.so': No such file nm: '/var/lib/docker/aufs/diff/843e2bded49837e4846422f3a82a67be3ccc46c3e636e03d8d946c57564468ba/lib/x86_64-linux-gnu/libgcc_s.so.1': No such […]

Docker日志不显示颜色(express + nodejs图像)

一个小问题,但有趣的问题(对我来说): 我正在尝试从我写的一个小型服务器(nodejs + express)创builddocker镜像。 我的服务器代码是: var express = require('express'); var Inflector = require('inflected'); var colors = require('colors'); var app = express(); app.get('/hello/:name', function(req, res, next){ var name = Inflector.titleize(req.params.name); console.log("Saying hello to " + name.yellow); res.send('Hello ' + name); }); var port = 9090; app.listen(port, function(){ console.log(('App is running on port ' + port).inverse); }); […]

将容器IP跨容器传递给configuration文件

我是Docker的新手,正在尝试基于Docker的HUB镜像创build两个容器,一个用于MySQL,一个用于Node.js应用。 我想将我的节点应用程序连接到MySQL主机。 为此,我打算通过我的config.yaml(由node-config使用)中的环境variables来存储关于该主机的信息,以备后用。 我的问题是:我怎么能通过MySQL容器的IP地址到我的node.js应用程序? 它是dynamic的归属,我隐约知道我可以检索它作为docker inspect $(docker ps -q) | grep '"IPAddress"' docker inspect $(docker ps -q) | grep '"IPAddress"' ,这可能是一个线索? Docker-compose.yml: mysql: image: mysql:5.6 environment: – MYSQL_ROOT_PASSWORD=**** – MYSQL_DATABASE=database – MYSQL_USER=user – MYSQL_PASSWORD=**** volumes: – /data/mysql:/var/lib/mysql nodeapp: build: . environment: – MYSQL_USER=^^^^^ // will mirror the value up there, and so on – … […]

如何用远程configuration运行Docker和node.js

我想为一个开源应用程序提供一个简单的Docker容器,它将一个configuration文件的URL作为参数并使用这个文件。 Dockerfile非常简单: FROM phusion/baseimage # Use baseimage-docker's init system. CMD ["/sbin/my_init"] RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash – RUN apt-get update RUN apt-get install -y nodejs git ADD . /src RUN cd /src; npm install; npm update ENV NODE_ENV production CMD ["/usr/bin/node", "/src/gitevents.js"] 我发现没有办法在容器运行时添加文件(使用ADD或ENTRYPOINT),所以我试图在node.js中解决: docker run -e "CONFIG_URL=https://gist.githubusercontent.com/PatrickHeneise/c97ba221495df0cd9a3b/raw/fda1b8cd53874735349c6310a6643e6fc589a404/gitevents_config.js" gitevents 这将CONFIG_URL设置为我可以在节点中使用的环境variables。 但是,我需要下载一个文件,这是asynchronous,哪种不能在当前的设置。 if (process.env.NODE_ENV […]

Docker容器中的NSolid应用程序注册了错误的IP地址

我在Docker容器中部署了一堆节点应用程序,并尝试使用N | Solid来监视它们。 但是,容器中的进程使用容器的内部IP地址( 172.17.0.1 )。 这在技术上是有道理的,但是那些IP不能被parsing,并且用户界面从来没有select它们。 有没有办法告诉过程的IP地址使用? 环境variables什么的

启动应用程序失败

我有一个node.js应用程序编译到dist文件夹的运行时版本。 因此package.json文件指定了启动脚本node dist/index.js 。 我现在想Containerize它,但容器不需要有分配目录,这些文件真的应该居住在应用程序的根,因此我的Dockerfile包含行 COPY package.json /usr/src/app/ COPY dist/* /usr/src/app/ 将运行时文件放置在图像中。 我遇到的问题是当docker文件发出最后一个命令时: CMD ["npm", "start"] 它失败了,因为index.js现在位于错误的位置(因为它在不存在的分发目录中查找它)。 我可以通过下列方式解决问题: CMD ["node", "index.js"] 相反,但这似乎是错误的事情。 什么是正确的方法? *更新I * 我已经修改了index.js所以它可以从项目的根目录运行(即期望通过发布node dist/index.js来find它在dist/文件夹中所需的资源),但是当然这是现在还有一个问题,因为没有分配目录。 这通常如何?

Docker – 无法连接到正在运行的图像

在我开始解释我的错误之前,让我说我是一个Windows用户,并没有很多使用Unix命令的经验。 因此,每个步骤都使用Docker快速入门terminal (MINGW64)完成。 这是几个星期前我第一次听到docker,并认为使用它的节点/快递网站。 所以我在Synology服务器上安装了Docker软件包。 完成网站后,我做了以下几点: 我按照这个网站上的说明: https : //docs.docker.com/windows/step_one/直到最后一步,一切正常(包括docker run hello-world ) 然后是“Dockerizing一个Node.js的Web应用程序” : https : //docs.docker.com/engine/examples/nodejs_web_app/ 文件层次结构 src(C:….. \ projectname) – 资产(文件夹) – 控制器(文件夹) – 公共(文件夹) –src(文件夹) –util(文件夹) – 浏览(文件夹) –node_modules(文件夹) –bin(文件夹) —- www(文件,不扩展) –app.js(文件) –Dockerfile(文件,不扩展) –package.json(文件) 至于内容: www : #!/usr/bin/env node /** * Module dependencies. */ var app = require('../app'); var debug […]

Docker利用几个基本的图像

docker工人,我试图学习它的最佳实践。 这是我的情况:我有一个网站,基于uppon yeoman发电机angular 。 我想创build一个Dockerfile(放置在我的项目中),基本上可以做到以下几点: 使用nodejs构build项目 用nginx服务输出 似乎nodejs和nginx的基础image processing很好的东西(我不想从他们的Dockerfile复制/粘贴),并将值得inheritance。 的确,我想尊重官方的nginx安装逻辑,也想保留关于buildpack-deps和东西的nodejs官方图像inheritance。 问题是 : 我将如何利用两个独特的基础图像,而不必复制粘贴他们的内容?