Tag: node.js

为以下应用程序结构编写docker的正确方法是什么?

我在nodejs上运行了3个nodejs微服务。 其中一个运行在一个单独的子域中,另外两个基于路径进行路由。 我的Docker文件如下 FROM node:latest RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install COPY . /usr/src/app EXPOSE 9000 CMD [ "npm", "start" ] 每个图像的端口是不同的。 在此之后,我有一个nginx运行裸机服务器上的所有配置反向代理服务器。 我知道这不是最好的方式。 我怎样才能有3个单独的实例运行,并在同一端口上侦听? 另外对于我正在使用的数据库链接 – 链接标志,但显示为在文档中折旧,什么是正确的方式来解决这个问题?

Zookeeper(docker外)卡夫卡节点网络中断

随机的时候,我正在面对这个问题,当与kookeeper连接卡夫卡节点。 门户,工人和websockets在码头集装箱内,而kafka zookeeper在外面。 这是码头网络问题还是我错过了一些配置? events.js:182 throw er; // Unhandled 'error' event ^ Error at ConnectionManager.cleanupPendingQueue (/tmp/node_modules/node-zookeeper-client/lib/ConnectionManager.js:189:46) at ConnectionManager.onSocketClosed (/tmp/node_modules/node-zookeeper-client/lib/ConnectionManager.js:274:10) at emitOne (events.js:115:13) at Socket.emit (events.js:210:7) at TCP._handle.close [as _onclose] (net.js:548:12) Producer { Error at ConnectionManager.cleanupPendingQueue (/tmp/node_modules/node-zookeeper-client/lib/ConnectionManager.js:189:46) at ConnectionManager.onSocketClosed (/tmp/node_modules/node-zookeeper-client/lib/ConnectionManager.js:274:10) at emitOne (events.js:115:13) at Socket.emit (events.js:210:7) at TCP._handle.close [as _onclose] (net.js:548:12) code: -4, name: 'CONNECTION_LOSS', path: […]

WebStorm远程解释器不能使用TSLint

我跟着这个链接在WebStorm中设置了一个Docker的远程解释器,现在我想用它作为TSLint插件的解释器,我在上面的窗口中看到: 但是当我尝试配置解释器时,我只能得到本地解释器的选项。 有什么办法可以配置它使用远程的? 这就是我所看到的:

在Eclipse Che中,连接被MySQL运行时拒绝

我试图从多机器工作区中的另一个NodeJS运行时连接到MySQL运行时的数据库。 在测试中,我打电话给目标用户列表的API http://localhost:3000/target 。 这个API中的代码在db上运行一个SELECT: … exports.list = function(req, res) { req.getConnection(function(err, connection) { if (err) { console.log("MySQL " + err); } else { connection.query('SELECT id FROM target', function(err, rows) { if (err) { console.log("Error Selecting : %s ", err); } else { … 我从终端得到的结果是: get target list from http://localhost:3000/target MySQL Error: connect ECONNREFUSED 127.0.0.1:3306 […]

在NPM postinstall例程中以$ HOME的方式创建目录

我在这里和那里调整一些东西,试图让它起作用,但也许最好问一下别人是否已经明白了这一点。 我想在$ HOME目录中创建一个目录,无论用户是否是root用户。 如果我是root用户(例如在Docker容器中),并且我像这样调用mkdir: mkdir "$HOME/.suman" && echo "created suman dir" || { echo " could not create suman dir"; exit 1; } 我得到这个错误: mkdir: cannot create directory '/root/.suman/logs': Permission denied 如果您是NPM安装后例程的根,是否有写入$ HOME的绝对方法? 我正在尝试两个 RUN npm install suman RUN sudo npm install suman 在容器中,并且这两个命令都遇到权限问题。 我的猜测是NPM可能会以某种方式禁用postinstall例程的根权限? 它看起来像这样有答案,但我不是100%确定: https : //docs.npmjs.com/misc/scripts 用户 如果使用root权限调用npm,则会将uid更改为user config所指定的用户帐户或uid,默认为nobody。 设置unsafe-perm标志以运行具有root权限的脚本。