Tag: docker

docker上的微服务 – 架构

我正在使用docker构build一个微服务项目。 我的一个微服务是一个应该从各种来源获取数据的监听器。 我想要实现的是启动和停止从源dynamic获取数据的能力。 例如在这幅图中,我有3个源码连接到3个docker。 我的问题开始,因为我需要创build另一个docker实例,当一个新的来源可用。 在这个例子中,让我们说源#4现在是可用的,我需要得到他的数据(我知道什么时候新的源变得可用),但我希望它被自动缩放(与源#4信息的倾听) 我想出了两个解决scheme,每个都有优点和缺点: 1)创build一个运行侦听器服务的大量docker的docker池,并且每当有新的源时,发送一条消息(使用rabbitmq,但我认为不太相关)到一个可用的docker来开始获取数据。 在这个解决scheme中,我有点担心没有理由运行Docker镜像的内存消耗,但这不是一个非常复杂的解决scheme。 2)每当有新的源代码可用时,创build一个新的docker(具有不同的环境variables) 有了这个解决scheme,我有一个创builddocker的问题。 在这一刻,我已经实现了这一点,但启动泊坞窗(让我们称之为pipe理器)的服务只是一个正常的nodejs应用程序,在同一台服务器上执行命令 – 我也需要它在docker集装箱内。 所以这里的问题是,我无法pipe理从主docker创build一个SSH连接来创build我的新的Docker。 我不太确定我的解决scheme是否按计划进行,并且非常感谢我的问题。

为什么我的docker节点容器退出

我试图用docker-compose运行节点容器 – services: node: build: context: nodejs/ ports: – "3000:3000" volumes: – ../nodejs:/usr/src/app working_dir: '/usr/src/app' 我的docker文件 FROM node:6.10 EXPOSE 3000 问题是它立即退出 – $ docker-compose up Starting docker_node_1 Attaching to docker_node_1 docker_node_1 exited with code 0 日志中没有任何东西 – docker logs docker_node_1什么也没有返回。 有一个package.json引用主脚本 – { … "main": "server.js", … } 而我的主要脚本只是一个简单的快递服务器 – const express = require('express'); const […]

docker工人编写与命令错误运行

从这个文档看来,我可以像这样从一个服务执行单个命令: docker-compose run SERVICE CMD 但是当我跑步 docker-compose up pwa npm test 我得到错误 ERROR: No such service: npm 从我的configuration,它将执行npm start ,但我想知道如何执行其他命令。 档 Dockerfile: From node:8 WORKDIR /app copy package.json /app/ RUN npm install –quiet CMD npm start 泊坞窗,compose.yml: version: '3' services: pwa: build: . ports: – '3000:3000' volumes: – ./src:/app/src – ./public:/app/public 版本 Docker版本:17.03 Docker组合版本:1.11.2

如何基于GitHub webhook自动化Docker部署?

所以我inheritance了一个应用程序,并不太满意当前的部署工作stream程。 有一个在ec2服务器上运行的docker实例,开发人员一直在合并他们的本地工作: rsync -arhvz –progress ./ ubuntu@52.12.345.67:/home/ubuntu/app –exclude node_modules 然后进入服务器本身并运行一个deploy.sh脚本。 我只是喜欢push事件到主分支触发这个同步和部署。 这怎么可能? 据我所知,我们不支付docker中心帐户 – 我们没有私人dockerregistry。

在一个Docker容器中同时启动两个节点脚本

是这样的可能在一个docker集装箱运行两个node.js脚本? docker run -d –name nt -v "$PWD":/usr/src/app -w /usr/src/app node node 2.js && node 1.js 这也不是: docker run -d –name nt -v "$PWD":/usr/src/app -w /usr/src/app node node 2.js node 1.js 或者这是不是意味着什么?

带有Docker的Nodemailer

我试图通过register365从一个运行快递的docker集装箱发送一些电子邮件。 这是使用的代码 export class Emailer { transporter: nodemailer.Transporter; constructor() { this.transporter = nodemailer.createTransport(smtpTransport({ host: 'smtp.reg365.net', auth: { user: 'myuser', pass: mypassword' } })); } public async sendEmail(to,body) { try { return await this.transporter.sendMail({to,from: '"TEST" <user@myuser.ie>',text: body, subject: ' WE NEED THE CONTENT AND DESIGN OF THIS EMAIL!!!!'}); } catch(error) { console.log('Email error'); console.dir(error); } } […]

Node.js连接到MySQL Docker容器ECONNREFUSED

在将此问题标记为重复之前,请注意,我确实已经阅读了其他答案,但这并没有解决我的问题。 我有一个由两个服务组成的Docker组合文件: version: "3" services: mysql: image: mysql:5.7 environment: MYSQL_HOST: localhost MYSQL_DATABASE: mydb MYSQL_USER: mysql MYSQL_PASSWORD: 1234 MYSQL_ROOT_PASSWORD: root ports: – "3307:3306" expose: – 3307 volumes: – /var/lib/mysql – ./mysql/migrations:/docker-entrypoint-initdb.d restart: unless-stopped web: build: context: . dockerfile: web/Dockerfile volumes: – ./:/web ports: – "3000:3000" environment: NODE_ENV: development PORT: 3000 links: – mysql:mysql depends_on: – mysql […]

如何将一个Node.js应用程序连接到一个docker服务的http rest API?

Node.js中的web应用程序通过axios连接到api。 import axios from 'axios' export function fetchList() { return axios.get('https://api.website.dev/v1/posts') } api运行良好,一切正常。 现在,我使用docker docker-compose在容器中运行完全相同的nodejs Web应用程序。 泊坞窗,compose.yml: 版本:“3.1” 服务: nodejs: image: node:alpine working_dir: /home/app restart: always ports: – "8000:8080" volumes: – ../nodejs:/home/app command: ["npm", "start"] axios调用Rest API返回一个错误: error { Error: getaddrinfo EAI_AGAIN api.domain.dev:443 at Object.exports._errnoException (util.js:1024:11) at errnoException (dns.js:55:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26) code: […]

NodeJS远程debugging与Docker

已经过了两天了,我仍然无法摆脱这个应该变成简单的事情! 我要: 创build一个nodejs docker swarm服务并在debugging模式下运行nodejs代码 将debugging器端口公开给主机 能够从主机连接到debugging器 重现问题的最简单的步骤是: root@host docker service create –name dbg-nodejs –publish 4444:4444 node sleep 10d root@host containerID=$(docker container ls –filter name=dbg-nodejs | awk 'FNR == 2 {print $1}') ### find the containerId root@host docker exec -d $containerID /bin/bash -c "(echo \"console.log('\n\n\nHello from NodeJS\n\n\n');\" > /usr/test-dbg.js) && node –inspect-brk=4444 /usr/test-dbg.js" root@host docker […]

Docker中如何运行无头浏览器?

我正在用无头浏览器构build一个爬虫但是现在我想要dockerize我的应用程序我已经在我的docker镜像中安装了chrome但是在运行这个脚本的时候它会抛出一个错误。 StartChrome.js const chromeLauncher = require('chrome-launcher'); chromeLauncher.launch({ port: 9222, chromeFlags: ['–headless','–proxy-server=54.171.181.204:8888','–disable-web-security','–disable-gpu'] }).then(chrome => { console.log(`Chrome debugging port running on ${chrome.port}`); }); 呃 (node:415) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: connect ECONNREFUSED 127.0.0.1:9222 (node:415) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js […]