Tag: node.js

如何在Docker容器中部署Nodejs应用程序

从我所知道的情况来看,有两种主要的方式来部署Nodejs容器,以便可以使用新的代码版本进行更新: 在Nodejs Dockerfile中,有一个ADD行,将新的本地版本复制到映像中。 当你有新的版本,你需要生成一个新的图像,停止现有的容器,并从新的图像启动一个容器。 在不复制任何文件的情况下创build一个Nodejs Dockerfile / image,但在执行docker run ,添加-v标志以将具有更新代码的本地目录映射到容器的Web根目录。 这些等价的解决scheme? 如果第二个选项一样好,第一个似乎是一大堆工作。

我怎么能执行'apt-get安装'docker上的Ubuntu的包含?

首先,我使用下面的命令安装并运行docker。 docker run -i -t ubuntu /bin/bash 然后我执行下面的命令。 root@d444a77039e7:/# apt-get update 0% [Connecting to archive.ubuntu.com (91.189.92.200)] 它一直封锁 然后我跑了下面的命令,但遇到了问题。 root@d444a77039e7:/# apt-get install nodejs Reading package lists… Done Building dependency tree Reading state information… Done E: Unable to locate package nodejs 然后我设置如下的http和https代理,但也失败了。 root@d444a77039e7:/# export HTTP_PROXY=http://proxy.xxx.com root@d444a77039e7:/# export HTTPS_PROXY=http://proxy.xxx.com 你能告诉我如何解决这个问题? 谢谢。 我的主机是redhat5.9,它不支持最新版本的nodejs。 所以我打算把它安装在docker引擎上。

创build一个基于Ubuntu的nodejs容器Docker

我使用了官方的nodejs镜像来创build一个运行nodejs应用程序的docker容器。 但现在我想创build相同的docker,但我的基础在Ubuntu的:14.04,但它不工作 Dockerfile mynode FROM ubuntu:14.04 RUN apt-get update -y RUN apt-get upgrade -y RUN apt-get install nodejs -y RUN apt-get install nodejs-legacy -y RUN apt-get install npm -y RUN npm install -g nodemon RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY ./prj/package.json /usr/src/app/ RUN npm install ADD ./prj /usr/src/app EXPOSE 9977 # Run app using […]

如何创build我的nginx.conf

问题是API和前端没有链接。 当我启动nginx容器时,我可以使用–link命令。 但我仍然需要编辑我的nginx.conf。 目前我有 worker_processes 4; events { worker_connections 1024; } http { upstream node-app { least_conn; server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s; } server { listen 80; location / { proxy_pass http://node-app; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } } 我的nodejs容器有–name nodejs和它的端口8888上运行( -p 8888:8888 )它的dockerfile看起来像这样: FROM node […]

Docker和NodeJS权限被拒绝

我知道,这个问题不是关于编程。 我有一个'Alpine'docker容器,用户'网'我可以安装NodeJS,安装一些模块与npm install并启动开发服务器(或prod服务器)。 但是,当我启动docker提交,新的图像有新的目录,但“networking”没有在目录中的cd或ls的权限。 即使使用chmod作为根目录,在那之后,我的用户获得Permission denied在所有主目录中Permission denied …就像目录被破坏一样(但是我可以用root来浏览它)。 我不想用root启动应用程序。 编辑2:最后,我只有下面的Dockerfile有同样的问题: FROM alpine:3.2 RUN adduser -D web RUN echo "web ALL=(ALL:ALL) NOPASSWD: ALL " > /etc/sudoers USER web WORKDIR "/home/web" ADD ./FOLDER /home/web EXPOSE 8080 5000 而且这也行不通…也许这是阿尔派的问题? 编辑:与Dockerfile。 我从一个Node BASE映像开始,它有以下操作: FROM alpine:3.2 ENV NODE_VERSION=v4.2.4 ENV NPM_VERSION=2 RUN apk –update –virtual build_dependencies \ make gcc g++ python […]

Docker固定date

我有一个运行mongo服务器的docker容器和一个连接到它的docker节点应用程序。 在mongo中,我有每天都在转储的数据,节点在查询时有逻辑使用昨天的date。 这是一个我不想每天都更新mongo数据库的testing设置。 有没有办法指定一个固定的date泊坞窗或节点,使mongo中的数据仍然是相关的?

如何testing队列工作者停机和恢复

我有非常简单的队列系统,它在mongodb(findAndModify)上工作。 我想testing的场景是: 用户启动后台作业,后台将作业放入队列。 工人(nodejs)拿起一份工作。 一段时间后,工人死亡(优雅与否),然后重新启动。 工人会拿起工作继续下去。 testing条件非常简单 – 工作应该完成。 工作人员在docker集装箱内部运行,testing在其外部运行。 有没有什么好的方法来testing这种行为?

帆不填充大型查询

我有一个传统的MySQL数据库,我正在使用由5个表组成,其中2个是连接/联结表。 我在控制器中有一个方法,查询其中一个表并通过连接表填充一些字段。 这对于less于1632项的查询可以正常工作,但对于填充字段数组之上的任何内容都不包含任何数据。 没有错误抛出,这些字段只是空白,如"user": [] 。 将SQL查询logging到MySQL容器中显示,对于项目> 1632,处理群体(inner_joins等)的第二个查询不会进入。 有没有其他人经历过这个? 我已经testing了这个风帆0.12.0和0.11.4和sails-mysql 0.11.4和0.11.1,它位于节点v4.2.6之上。 我正在Docker容器中运行api和数据库,并且已经testing了为docker主机configuration更多的RAM而无济于事。

泊坞窗与模式和mongo使用大量的磁盘空间

我有一个使用MEAN栈的docker容器设置,我的磁盘使用率正在迅速增加。 我在数字海洋上有一个30gb的液滴,使用率达到了93%,比3天前的67%有所上升,从那以后我就没有安装任何东西,只装载了几千条数据库logging。 我的数据库中可能有20k或30k文件,但它们不是很大,但是我的磁盘使用量每天增加大约5% 。 一个更大的数据集存储相同的数据是在这之前postgres,我从来没有存储空间的问题,我在一个20克液滴之前,我是在部署我的mongo应用程序后被迫增加。 我删除了大部分旧图像和非运行容器。 运行docker ps -s产生以下结果: 我的主网页容器显示为8.456 kB(虚拟817.4 MB) 我的mongo容器显示0 B(虚拟314.4 MB) 使用docker images从图像中进行文件化 虚拟大小 848 MB 643 MB 743.6 MB 317 MB 636.7 MB 使用df文件系统: 文件系统1K块已用可用使用%挂载 / dev / vda1 30830588 26957740 2283712 93%/ Docker copmose命令启动mongo: command: mongod –dbpath /data/db –smallfiles –quiet –logpath=/dev/null 我跑了: sudo du -h / | grep -P […]

docker中的节点检查器不加载源代码

我有两个不同图像的docker集装箱。 这是“docker ps”命令的部分输出: $user: docker ps CONTAINER ID IMAGE PORTS 9c8ff81215d4 node:slim 0.0.0.0:5858->5858/tcp, 0.0.0.0:10101->10101/tcp d85a0de91432 node-debug 0.0.0.0:8080->8080/tcp 第一个容器正在运行带有debugging选项的服务器应用程序: $user: node –debug server.js Debugger listening on port 5858 … 并用debugging器在端口5858上监听,在端口10101上用server.js app监听。 第二个容器正在运行节点检查器 $user: node-inspector Node Inspector v0.12.6 Visit http://127.0.0.1:8080/?port=5858 它在默认情况下在端口5858上连接到debugging器,并在Chrome上监听端口8080上的web-inspector。 问题是当我访问http://127.0.0.1:8080/?port=5858我看到没有加载源检查员。 在Chrome控制台中看到这个错误: Request with id = 10 failed. "ErrorNotConnected: Error: connect ECONNREFUSED 127.0.0.1:5858. Is node running […]