ich in meinem Meteor app so habe ich versucht, zurück zu einem eingebauten BeispielECONNREFUSED Fehler mit Meteor 1.6, Mongo 3.2 und Docker mac
$ git clone https://github.com/meteor/todos tst
$ cd tst
$ meteor npm install
$ meteor update
$ meteor update --all-packages
$ meteor npm install --save bcrypt
$ meteor
Dies funktioniert, so weit, so gut einen ECONNREFUSED Fehler. Okay, machen eine Docker-compose.yml
meteor:
container_name: tst_meteor_1
image: abernix/meteord:node-8-devbuild
ports:
- "3000:80"
links:
- mongo
volumes:
- ../output:/bundle
environment:
- ROOT_URL=http://localhost:3000
- METEOR_ALLOW_SUPERUSER=true
- MONGO_URL=mongodb://localhost:27017/meteor
mongo:
container_name: tst_mongo_1
image: mongo:3.2-jessie
ports:
- "127.0.0.1:27017:27017"
Jetzt die App bauen und führen Sie es in Docker
$ meteor build ../output --architecture=os.linux.x86_64 --server-only
$ docker-compose --file docker-compose.yml up -d
Überprüfen Sie, ob
$ docker logs -f tst_mongo_1
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=012d211f6526
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] db version v3.2.17
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] git version: 186656d79574f7dfe0831a7e7821292ab380f667
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1t 3 May 2016
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] allocator: tcmalloc
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] modules: none
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] build environment:
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] distmod: debian81
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] distarch: x86_64
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] target_arch: x86_64
2017-11-26T04:48:28.340+0000 I CONTROL [initandlisten] options: {}
2017-11-26T04:48:28.343+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-11-26T04:48:28.380+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2017-11-26T04:48:28.380+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-11-26T04:48:28.381+0000 I NETWORK [initandlisten] waiting for connections on port 27017
Ja Mongo ist runnning prüfen, ob Meteor läuft
$ docker logs -f tst_meteor_1
> [email protected] install /bundle/bundle/programs/server
> node npm-rebuild.js
> [email protected] install /bundle/bundle/programs/server/npm/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
[bcrypt] Success: "/bundle/bundle/programs/server/npm/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote
> [email protected] install /bundle/bundle/programs/server/npm/node_modules/fibers
> node build.js || nodejs build.js
`linux-x64-57` exists; testing
Binary is fine; exiting
[email protected] /bundle/bundle/programs/server/npm/node_modules/abbrev
... 202 lines of node_modules
[email protected] /bundle/bundle/programs/server/npm/node_modules/meteor-node-stubs/node_modules/indexof
{
"meteor-dev-bundle": "0.0.0",
"npm": "5.5.1",
"ares": "1.10.1-DEV",
"cldr": "31.0.1",
"http_parser": "2.7.0",
"icu": "59.1",
"modules": "57",
"nghttp2": "1.25.0",
"node": "8.9.1",
"openssl": "1.0.2m",
"tz": "2017b",
"unicode": "9.0",
"uv": "1.15.0",
"v8": "6.1.534.47",
"zlib": "1.2.11"
}
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN [email protected] No license field.
up to date in 9.48s
=> Starting meteor app on port:80
/bundle/bundle/programs/server/node_modules/fibers/future.js:313
throw(ex);
^
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (/bundle/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/topologies/server.js:336:35)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/bundle/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:280:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/bundle/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:187:49)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
Und ich bekomme die ECONNREFUSED Fehler
Ich vermute nur, das ist ein Docker Problem. Ich habe docker-machine in der Vergangenheit ausgeführt, aber vor kurzem auf docker mac (und viele Sachen kaputt).
Haben Sie eine Idee, wie Sie dieses Problem beheben können?
Einige andere Dinge, die ich versuchte
- bewegen Ports
- nicht die Abbildung der internen Docker Port mit dem gleichen Host-Port
- keinen Datenbanknamen (meine alte Konfiguration nicht benötigen) mit
versucht, einen gemeinsamen Netzwerk
version: "3.3" services: meteor: container_name: tst_meteor_1 image: abernix/meteord:node-8-devbuild ports: - "3000:80" links: - mongo networks: - tst volumes: - ../output:/bundle environment: - ROOT_URL=http://localhost:3000 - METEOR_ALLOW_SUPERUSER=true - MONGO_URL=mongodb://localhost:27017/meteor mongo: container_name: tst_mongo_1 image: mongo:3.2-jessie networks: - tst expose: - "27017" ports: - "127.0.0.1:27017:27017" networks: tst: driver: bridge