Tag: docker

Docker SIGTERM在使用标志启动时不会被传递到node.js / coffee应用程序

我在应用程序中设置了侦听器来捕获SIGTERM,SIGINT和SIGUSR2: # kill process.on 'SIGTERM', -> killExecutors 'SIGTERM' # ctrl + c process.on 'SIGINT', -> killExecutors 'SIGINT' # nodemon signal process.on 'SIGUSR2', -> killExecutors 'SIGUSR2' 它按预期工作。 当我在Docker实例中运行它时: FROM node:4.4.7 MAINTAINER Newborns <newborns@versul.com.br> COPY . /src EXPOSE 7733 WORKDIR /src RUN npm install CMD ["./node_modules/.bin/coffee", "feeder.coffee"] 一切工作也很好。 但是,当我添加一个节点标志的执行 FROM node:4.4.7 MAINTAINER Newborns <newborns@versul.com.br> COPY . /src […]

在docker中安装带有节点的phantomjs

我试图在phantomjs中的/usr/local/bin中安装phantomjs可执行文件,并在节点旁边。 我想我已经快到了,但是我对docker工人来说很新,而且不熟悉安装二进制文件或者使用Linux工作,所以很难找出错误的地方。 这是我的docker文件: FROM node:6.4-onbuild # Install phantomjs WORKDIR ~ RUN apt-get install libfreetype6 libfreetype6-dev \ && apt-get install libfontconfig1 libfontconfig1-dev RUN export PHANTOM_JS="phantomjs-2.1.1-linux-i686" \ && wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \ && tar xvjf $PHANTOM_JS.tar.bz2 \ && mv $PHANTOM_JS /usr/local/share \ && ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin WORKDIR /usr/src/app RUN npm run build EXPOSE 8080 CMD ["node", "./bin/start.js"] […]

Docker Help:为Node.js App创buildDockerfile和Image

我是新的docker,并在docker的网站上遵循教程来在本地安装boot2docker,并使用他们的教程( https://docs.docker.com/examples/nodejs_web_app/ )为Node应用程序构build自己的图像。 我能够成功地完成这个,但我有以下问题: (1)我应该使用这些Node Docker镜像( https://registry.hub.docker.com/_/node/ )而不是CentOS6作为Docker镜像的基础吗? 我猜Docker教程已经过时了吗? (2)如果我应该从Node Docker映像基础,没有任何人有任何想法是Slim和常规官方节点图像更好地使用。 我会认为苗条将是最好的select,但我很困惑为什么存在多个版本。 (3)我不希望我的Docker Images将我的Node.JS应用程序源文件直接包含在图像中,因此必须在每次提交时重新创build我的图像。 相反,我想运行我的Docker容器,以便在启动特定提交时从我的私有Git存储库中提取源代码。 这可能吗? 我可以使用入口点这样的东西来指定我的凭据,并在运行Docker容器时提交,因此它会运行一个shell脚本来拉代码,然后启动节点应用程序? (4)我可能会在同一个EC2主机上运行多个不同的Docker容器。 我想确保容器都是基于相同的Linux发行版将是首选? 这将禁止我第一次启动实例并运行不同的容器时下载多个版本? 谢谢!

从节点映像运行docker容器时找不到Npm

# Dockerfile FROM node:7-alpine RUN mkdir -p /src/app WORKDIR /src/app COPY package.json /src/app/package.json RUN npm install COPY . /src/app EXPOSE 3000 CMD ['npm', 'start'] 我正在尝试使用上面的Dockerfile为Dockerizing nodejs应用程序完成katacoda.com练习。 构build完成,但立即运行图像退出,并在我看到的docker日志中: /bin/sh: [npm,: not found 我试图用docker -it nodeapp /bin/bash在docker -it nodeapp /bin/bash运行容器,它引发了错误docker -it nodeapp /bin/bash docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: […]

将node.js移动到一个docker容器,收到一个can not file模块错误

我正在尝试创build一个node.jsdocker容器的api图层转录从打字稿从scr文件夹复制到dist文件夹。 node.js容器似乎立即退出,当我发出docker-compose日志时,我得到“错误:无法find模块'/usr/src/app/webapp.js'”,但是,当我调出容器与 – d选项,我可以看到文件和目录结构在正确的层次结构中。 这里有什么可能是错的? 为什么节点无法findwebapp.js文件? Dockerfile: FROM node:latest # install our dependencies and nodejs RUN mkdir -p /usr/src RUN mkdir -p /tmp/dist ADD Account/package.json /tmp/package.json RUN cd /tmp && npm install –production ADD Account/dist /tmp/dist RUN mkdir -p /tmp/node_modules/mongodb-repository ADD Account/node_modules/mongodb-repository /tmp/node_modules/mongodb-repository RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app && cp -a […]

有条件的无花果configuration为开发需要

一段时间以来,我们一直在使用docker集装箱进行开发和卸载,而且它的function就像一个魅力。 直到现在,两个configuration都是相同的,而顶层的开发人员的生活也更容易。 随着我们在节点开发中越来越多地使用它,现在我们面临着在开发(检查员,configuration文件等)的时候需要一些额外的工具,而这些工具在生产容器中显然是不需要的。 再次捕捉到node-inspector是:它需要暴露一个端口连接到一个浏览器才能看到该工具它自己。 这里是简单的我们的fig.yml文件: indexer: build: . volumes: – .:/src links: – db – amqp – search amqp: ports: – "5672:5672" – "15672:15672" image: mikaelhg/docker-rabbitmq db: ports: – "3306:3306" image: tutum/mysql:5.6 search: ports: – "9002:9002" – "9300:9300" image: dockerfile/elasticsearch “索引器”是我们的应用程序容器,可以多次启动,将其configuration更改为: indexer: ports: – "8080:8080" build: . volumes: – .:/src links: – db – amqp […]

Docker容器与Angular2应用程序和NodeJs不响应

我通过angular-cli创build了新的Angular2应用程序,并在Docker中运行它。 但我不能从本地连接它。 起初,我在本地机器上启动应用程序: ng new project && cd project && "put my Dockerfile there" && docker build -t my-ui . 我通过命令启动它: docker run -p 4200:4200 my-ui 然后尝试我的本地主机: curl localhost:4200 并接收 curl:(56)Recv失败:连接被同级重置 然后,我试着切换到运行容器( docker exec -ti container-id bash )并运行curl localhost:4200并且它可以工作。 我也试着用–net = host param运行容器: docker run –net=host -p 4200:4200 my-ui 它工作。 问题是什么? 我也尝试在守护进程模式下运行容器,并没有帮助。 谢谢。 我的Dockerfile FROM […]

Docker的mysql主机没有特权

我正在尝试configuration一个nodejs容器来连接到一个mysql数据库。 我的代码如下所示: var pool = mysql.createPool({ host : 'mysql', port : '3306', user : 'root', password : '…', database : 'general', connectionLimit : 50, queueLimit : 5000 }); 我正在使用标准的mysql容器。 我用无花果来启动容器。 fig.yml看起来像这样: node: build: node ports: – "9000:9000" – "9001:9001" links: – mysql:mysql command: node server/Main.js mysql: image: mysql volumes: – /data/test:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: … 每次我尝试连接,我得到以下错误: […]

NPM安装在Docker容器内失败,但是在具有公司代理的主机上运行

我正在将一些node.js服务部署到docker容器内的公司系统中。 我的这些服务的Dockerfiles是非常基本的,除了我设置代理环境variables: FROM node:4.2.3 ADD . /src WORKDIR /src ENV http_proxy http://proxy.gc.corp.com:8888/ ENV https_proxy http://proxy.gc.corp.com:8888/ ENV HTTP_PROXY http://proxy.gc.corp.com:8888/ ENV HTTPS_PROXY http://proxy.gc.corp.com:8888/ RUN npm install –production EXPOSE 3000 CMD npm start >> /log/eva_web_api 当我从这个文件构build我的图像时,我收到来自NPM的以下错误: 上次尝试错误:错误:无法build立隧道套接字,原因= getaddrinfo ENOTFOUND proxy.gc.corp.com proxy.gc.corp.com:8888 但是,当我在主机(已安装Node.js以及Docker)上执行NPM安装时,NPM安装将按正常方式执行,并且不会出现问题。 一个主机我有相同的ENVvariables设置为我在我的Dockerfile定义。 任何人对于这里发生的事情都有任何的想法,我有一张票与我的networking团队负责代理,但他们还没有任何帮助。

使用Docker扩展微服务

我已经创build了一个Node.js(Meteor)应用程序,并且正在研究未来处理扩展的策略。 我已经将我的应用程序devise为一组微服务,现在我正在考虑在生产中实现这一点。 然而,我想要做的是在一个服务器实例上运行许多微服务,以便在使用less量资源的同时最大限度地利用资源。 我知道容器是有用的,但我很好奇,如果有一种方法来创build一个dynamic缩放集合的地方,我可以: 编写命令,如“如果运行这个应用程序的容器达到> 80%的CPU /其他限制指标,则在此服务器上提供另一个应用程序容器”, 如果需要额外的容器,提供和准备其他服务器, 这些容器之间的负载均衡连接(这是否会影响服务器负载平衡,例如,发送较less的连接到容器较less的服务器?) 我已经研究过AWS EC2,Docker Compose和nginx,但是我不确定我是否正确地朝着正确的方向前进。