aussetzt habe ich NodeJS + mongodb webapp in zwei getrennten Behältern Andockfenstersmongodb von Andockfensters Behälter auf Server
I für NodeJS und 27017 für mongodb Ports in Andockfensters-compose.yml ausgesetzt haben 8080 laufen
I verwenden pymongo einreichen Daten von meinem python-Skript , wenn ich es lokal ausgeführt
ich bin in der Lage, die Daten zu übermitteln Aber wenn ich es auf Unternehmen (intern) Server laufen nicht in der Lage Daten ich bin zu senden und ich mongodb Zugriffsfehler erhalten (Port 27017: Verbindung verweigert).
dbOp.py
self.read_db_config(fname)
self.dbname = user
url = 'mongodb://{0}:{1}/'.format(self.host,self.port)
print("url:{0}".format(url))
client = MongoClient(url)
db = client[self.dbname]
self.collection = db[self.coll]
if self.dbname in client.database_names():
print("db exists::{0},{1}".format(self.dbname, client.database_names()))
post = {"date": datetime.datetime.utcnow()}
self.collection.insert_one(post)
else:
print("creating db")
post = {"date": datetime.datetime.utcnow()}
self.collection.insert_one(post)
Andockfensters-compose.yml
version: "2"
services:
web:
build:
context: .
dockerfile: Dockerfile_node
volumes: # Use this to mount app from local disk
- ./:/usr/src/app
ports:
- "8080:8080"
- "5858:5858"
entrypoint: node --debug=5858 app.js
links:
- mongodb
mongodb:
image: mongo
ports:
- "27017:27017"
Dockerfile_node
FROM node:argon
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
Kann jemand vorschlagen, was könnte fehlen.
MongoDB ist lokal arbeiten, 'Request> Local_PY_Redirector> MongoDB> Local_PY_Redirector> zu_Client' – dsgdfg
1) local == localhost. 2) PY_Script> PYMongo_Script ('url = 'mongodb: // {0}: {1} /'.format (selbst.host, self.port)')> Mongodb: 27017. 3) Index.html> NodeJS> Mongodb funktioniert gut. Also 2 ist der Übeltäter, wenn self.host von localhost zu –
katch
wechselt Sie 'CGI-Seite' und' local service' Adresse gemischt. Erzeuge eine lokale Schleife, kann keine mongodb Skripte extern aufrufen (hat einen großen Sicherheitsgrund). Kann Ausgang nicht ganze Zugangsdatenbank nennen! Nur 'localhost' erlaubt, ansonsten können Datenbankinjektionen nicht blockiert werden. – dsgdfg