- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我知道这听起来很愚蠢,但我必须创建两个 meteor 项目,一个作为端口 8081 上的“服务器”,另一个作为端口 8080 上的“客户端”,并使用 docker 运行这两个项目。客户端不得创建 mongodb 实例,因为它应该连接到服务器的实例。我知道服务器会自动在8082端口上创建mongodb。
使用 export MONGO_URL=mongodb://127.0.0.1:8082/meteor
在单独启动所有内容时效果很好。但是当使用Docker时,它告诉我客户端无法连接到端口8082上的mongo。
我想要的是能够将客户端连接到 8082 上的 mongo,或者在端口 27017 上的完整 mongodb 上连接客户端和服务器。
以下是文件:
服务器的 DockerFile:
FROM node:10
ENV METEOR_ALLOW_SUPERUSER=true
ENV ROOT_URL="http://localhost:8081"
RUN curl "https://install.meteor.com/" | sh
COPY . /usr/src/server
WORKDIR /usr/src/server
#RUN chmod -R 700 /usr/src/app/.meteor/local
RUN meteor npm install
EXPOSE 8081
CMD ["npm", "start"]
客户端的 DockerFile:
FROM node:10
ENV METEOR_ALLOW_SUPERUSER=true
ENV ROOT_URL="http://localhost:8080"
RUN curl "https://install.meteor.com/" | sh
COPY . /usr/src/client
WORKDIR /usr/src/client
#RUN chmod -R 700 /usr/src/app/.meteor/local
RUN meteor npm install
RUN export MONGO_URL=mongodb://127.0.0.1:8082/meteor
EXPOSE 8080
CMD ["npm", "start"]
Docker-compose.yml:
version: "3.3"
services:
server:
build: ./Server
ports:
- "8081:8081"
command: "meteor run -p 8081"
links:
- database
client:
build: ./Client
ports:
- "8080:8080"
command: "meteor run -p 8080"
environment:
- MONGO_URL=mongodb://localhost:8082/meteor
depends_on:
- server
database:
image: mongo:3.6.4
这是我得到的错误:
MongoNetworkError: failed to connect to server [localhost:8082] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:8082]
client_1_a42af00d59c0 | W20190311-15:01:13.496(0)? (STDERR) at Pool.<anonymous> (/root/.meteor/packages/npm-mongo/.3.1.1.v3rpzk.m5kk8++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/mongodb-core/lib/topologies/server.js:564:11)
client_1_a42af00d59c0 | W20190311-15:01:13.499(0)? (STDERR) at emitOne (events.js:116:13)
client_1_a42af00d59c0 | W20190311-15:01:13.501(0)? (STDERR) at Pool.emit (events.js:211:7)
client_1_a42af00d59c0 | W20190311-15:01:13.502(0)? (STDERR) at Connection.<anonymous> (/root/.meteor/packages/npm-mongo/.3.1.1.v3rpzk.m5kk8++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/mongodb-core/lib/connection/pool.js:317:12)
client_1_a42af00d59c0 | W20190311-15:01:13.503(0)? (STDERR) at Object.onceWrapper (events.js:317:30)
client_1_a42af00d59c0 | W20190311-15:01:13.504(0)? (STDERR) at emitTwo (events.js:126:13)
client_1_a42af00d59c0 | W20190311-15:01:13.505(0)? (STDERR) at Connection.emit (events.js:214:7)
client_1_a42af00d59c0 | W20190311-15:01:13.506(0)? (STDERR) at Socket.<anonymous> (/root/.meteor/packages/npm-mongo/.3.1.1.v3rpzk.m5kk8++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/mongodb-core/lib/connection/connection.js:246:50)
client_1_a42af00d59c0 | W20190311-15:01:13.507(0)? (STDERR) at Object.onceWrapper (events.js:315:30)
client_1_a42af00d59c0 | W20190311-15:01:13.508(0)? (STDERR) at emitOne (events.js:116:13)
client_1_a42af00d59c0 | W20190311-15:01:13.509(0)? (STDERR) at Socket.emit (events.js:211:7)
client_1_a42af00d59c0 | W20190311-15:01:13.509(0)? (STDERR) at emitErrorNT (internal/streams/destroy.js:64:8)
client_1_a42af00d59c0 | W20190311-15:01:13.511(0)? (STDERR) at _combinedTickCallback (internal/process/next_tick.js:138:11)
client_1_a42af00d59c0 | W20190311-15:01:13.511(0)? (STDERR) at process._tickDomainCallback (internal/process/next_tick.js:218:9)
谢谢。
编辑:好的,感谢您的帮助,但我已经成功做到了。以下是文件:
docker-compose.yml
version: "3.3"
services:
client:
build: ./Client
depends_on:
- server
ports:
- "8081:8081"
command: "meteor run -p 8081"
environment:
- MONGO_URL=mongodb://database:27017/meteor
server:
build: ./Server
ports:
- "8080:8080"
command: "meteor run -p 8080"
depends_on:
- api
environment:
- MONGO_URL=mongodb://database:27017/meteor
mobile:
build: ./application
links:
- database
depends_on:
- server
- database
api:
build: ./Client/api
ports:
- "4000:4000"
command: node apiLinks.js 4000 database
links:
- database
depends_on:
- database
database:
image: mongo:3.6.4
客户端/Dockerfile
FROM node:10
ENV METEOR_ALLOW_SUPERUSER=true
ENV ROOT_URL="http://localhost:8081"
RUN curl "https://install.meteor.com/" | sh
COPY . /usr/src/client
WORKDIR /usr/src/client
#RUN chmod -R 700 /usr/src/app/.meteor/local
RUN meteor npm install
EXPOSE 8081
CMD ["npm", "start"]
服务器/Dockerfile
FROM node:10
ENV METEOR_ALLOW_SUPERUSER=true
ENV ROOT_URL="http://localhost:8080"
RUN curl "https://install.meteor.com/" | sh
COPY . /usr/src/server
WORKDIR /usr/src/server
#RUN chmod -R 700 /usr/src/app/.meteor/local
RUN meteor npm install
EXPOSE 8080
CMD ["npm", "start"]
在代码中我替换了所有的网址。例如,我现在使用的是 http://server:8080
,而不是 http://127.0.0.1:8080
。
您可能会注意到服务器现在位于端口 8080 上,客户端位于端口 8081 上。我必须切换它们,这是后来更改的主题的一部分。
最佳答案
Meteor 应用程序不直接公开 mongodb。只有在开发过程中,它才会为您启动一个。
如果您想将一个 Meteor 应用程序连接到另一个应用程序,您应该使用 DDP.connect
和服务器的 URL。
然后您可以从该服务器订阅数据并调用该服务器上的meteor方法。
关于node.js - 使用 docker 的两个 meteor 项目 - ECONNREFUSED 127.0.0.1 :8082,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55104937/
我正在尝试学习 AngularJS。作为其中的一部分,我想学习使用端到端测试。目前,我有一个这样的目录结构: node_modules .bin ... protractor ..
我收到了 heroku run any_command_here 的 ECONNREFUSED。 Heroku 登录成功。其他 heroku 命令也成功(应用程序、发布、共享)。应用程序正在运行。我什
我以前可以运行它。但现在我不能了。它是在一个项目中。我的 friend 从 git latst 存储库(这也是我导入的方式)拥有这个项目,可以使用 gulp protractor qa 在网关下运行
我是 node.js 和 Selenium 的新手,所以如果我没有立即提供所需的所有详细信息,请多多包涵。 这是我想在 FF 中运行的非常简单的测试(我在这里发现了很多这样的问题,但它们指的是 Chr
我在一个模拟的(facebook/google)策略上运行一些测试但是当我一个一个地运行这些测试时我遇到的问题是它正在运行但是当我同时运行它们时它们在第一次测试后不工作,连接应用程序立即失败。 我尝试
我在我的电子桌面应用程序中使用 NodeJS selenium。 "electron-chromedriver": "^4.0.0-beta.1", "selenium-webdriver": "^4
在 selenium Node js 上运行测试用例遇到错误错误:ECONNREFUSED 连接 ECONNREFUSED。 测试用例 var assert = require('assert'),
MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect
我用下面的代码连接到php websocket。 serverAddr = InetAddress.getByName(ip_str); socket = new So
我正在开发一个应用程序,我想我想做的是从 android 中的服务器数据库接收数据。所以我开始运行一些教程。我找到了一个正在做我想做的事的人。但我得到: detailMessage "failed
我有两个docker-compose设置,主要服务是SPA,其中包含: nginx代理,用于端口80上的wordpress wordpress + mysql expressjs用于服务React应用
我正在尝试将一个值插入到我的数据库中,该数据库是 mydb 并且该表是使用 2 个字段用户名和密码登录的。我正在使用 express.js 和 MySQL。插入查询代码为 exports.insert
在我正在开发的 Sails.js 应用程序中,我随机遇到了一个 ECONNREFUSED 错误。我试图检查引发错误的代码片段,但没有成功。我已经将日志切换为详细(NODE_DEBUG 环境变量设置为“
我是 nodejs 和 express 的新手。我正在使用“请求”库来阅读 google.com 的内容。我不断收到连接被拒绝的错误。我从 https://github.com/request/req
所以我正在尝试编写一个discord.js 机器人!我应该将discord bot 记录在 channel 中发送到mysql 的所有消息。我在互联网上搜索过,但没有找到解决我的问题的方法。前任。 n
我正在运行一个以 mysql 作为我的数据库的 Node 应用程序(也使用 sequelize 作为 ORM)。每当我使用“node”命令运行“app.js”文件时,我都会收到错误消息: { [错误:
我使用以下方法创建了一个套接字:socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)。 根据 this ,如果我多次发送简单数据包(乘以 send() 和/或 sendto
AssertionError: null == {"name":"MongoError","message":"connect ECONNREFUSED"} 我遇到断言错误。 我尝试使用 NodeJS
我正在学习 learnyounode 教程来学习 Node.js。每当我尝试安装软件包时都会收到错误。 npm ERR! Linux 4.2.0-c9 npm ERR! argv "/home/ubu
我已尝试使用此代码从我的 android 应用程序向服务器发送数据。 try { HttpClient httpClient = new DefaultHttpClient(); Ht
我是一名优秀的程序员,十分优秀!