Python Mongo docker-构成拓扑错误
Python Mongo docker-compose Topology Error
我正在尝试 mongo 和 python 的非常简单的示例,但出现错误。
Docker 文件:
FROM python:3.8-slim
WORKDIR /code
COPY requirements.txt ./
RUN pip3 install pipenv
RUN pipenv install -r requirements.txt
COPY . .
ENTRYPOINT ["/bin/sh", "./run_test.sh"]
run_test.sh
#!/bin/bash
exec pipenv run python3 db_test.py
docker-compose.yaml:
version: '3.3'
volumes:
dbdata:
services:
db:
image: mongo
restart: always
volumes:
- "dbdata:/data/db"
bot:
build:
context: .
dockerfile: Dockerfile
depends_on:
- db
env_file:
- .env
db_test.py:
from db import Game
if __name__ == '__main__':
if not Game.objects():
Game(_id=1, first_team="first", second_team="second").save()
for game in Game.objects():
print(game._id)
print(game.first_team)
print(game.second_team)
db.py:
import datetime as dt
import os
from mongoengine import connect, Document, IntField, StringField, DateTimeField
from dotenv import load_dotenv
load_dotenv()
connect(os.getenv("DB_NAME"), host=os.getenv("DB_HOST"), port=27017)
class Game(Document):
_id = IntField(required=True, primary_key=True)
first_team = StringField(required=False)
second_team = StringField(required=False)
date = DateTimeField(default=dt.datetime.now, required=False)
if __name__ == "__main__":
pass
我正在做 docker-compose up
并得到了这个输出:
Starting mlb_bot_db_1 ... done
Recreating mlb_bot_bot_1 ... done
Attaching to mlb_bot_db_1, mlb_bot_bot_1
db_1 | {"t":{"$date":"2022-05-29T15:31:07.661+00:00"},"s":"I", "c":"CONTROL", "id":23285, "ctx":"-","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.663+00:00"},"s":"I", "c":"NETWORK", "id":4915701, "ctx":"-","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":13},"outgoing":{"minWireVersion":0,"maxWireVersion":13},"isInternalClient":true}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.670+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"main","msg":"No TransportLayer configured during NetworkInterface startup"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.670+00:00"},"s":"I", "c":"NETWORK", "id":4648601, "ctx":"main","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize."}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"main","msg":"No TransportLayer configured during NetworkInterface startup"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationDonorService","ns":"config.tenantMigrationDonors"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationRecipientService","ns":"config.tenantMigrationRecipients"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"CONTROL", "id":5945603, "ctx":"main","msg":"Multi threading initialized"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.678+00:00"},"s":"I", "c":"CONTROL", "id":4615611, "ctx":"initandlisten","msg":"MongoDB starting","attr":{"pid":1,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"d3d10018bf13"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":23403, "ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"5.0.8","gitVersion":"c87e1c23421bf79614baf500fda6622bd90f674e","openSSLVersion":"OpenSSL 1.1.1f 31 Mar 2020","modules":[],"allocator":"tcmalloc","environment":{"distmod":"ubuntu2004","distarch":"x86_64","target_arch":"x86_64"}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":51765, "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Ubuntu","version":"20.04"}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":21951, "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"net":{"bindIp":"*"}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.682+00:00"},"s":"W", "c":"STORAGE", "id":22271, "ctx":"initandlisten","msg":"Detected unclean shutdown - Lock file is not empty","attr":{"lockFile":"/data/db/mongod.lock"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"I", "c":"STORAGE", "id":22270, "ctx":"initandlisten","msg":"Storage engine to use detected by data files","attr":{"dbpath":"/data/db","storageEngine":"wiredTiger"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"W", "c":"STORAGE", "id":22302, "ctx":"initandlisten","msg":"Recovering data from the last clean checkpoint."}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"I", "c":"STORAGE", "id":22297, "ctx":"initandlisten","msg":"Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem","tags":["startupWarnings"]}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.686+00:00"},"s":"I", "c":"STORAGE", "id":22315, "ctx":"initandlisten","msg":"Opening WiredTiger","attr":{"config":"create,cache_size=481M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),builtin_extension_config=(zstd=(compression_level=6)),file_manager=(close_idle_time=600,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.629+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:629657][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 11 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.739+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:739087][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 12 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.880+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:880331][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_ALL] Main recovery loop: starting at 11/2688 to 12/256"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.883+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:883919][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 11 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.163+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:163282][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 12 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.262+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:262950][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_ALL] Set global recovery timestamp: (0, 0)"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.263+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:263516][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_ALL] Set global oldest timestamp: (0, 0)"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.296+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:296578][1:0x7f2a83021c80], WT_SESSION.checkpoint: [WT_VERB_CHECKPOINT_PROGRESS] saving checkpoint snapshot min: 6, snapshot max: 6 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 1714"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.309+00:00"},"s":"I", "c":"STORAGE", "id":4795906, "ctx":"initandlisten","msg":"WiredTiger opened","attr":{"durationMillis":1623}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.311+00:00"},"s":"I", "c":"RECOVERY", "id":23987, "ctx":"initandlisten","msg":"WiredTiger recoveryTimestamp","attr":{"recoveryTimestamp":{"$timestamp":{"t":0,"i":0}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.317+00:00"},"s":"I", "c":"STORAGE", "id":4366408, "ctx":"initandlisten","msg":"No table logging settings modifications are required for existing WiredTiger tables","attr":{"loggingEnabled":true}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.322+00:00"},"s":"I", "c":"STORAGE", "id":22262, "ctx":"initandlisten","msg":"Timestamp monitor starting"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.340+00:00"},"s":"W", "c":"CONTROL", "id":22120, "ctx":"initandlisten","msg":"Access control is not enabled for the database. Read and write access to data and configuration is unrestricted","tags":["startupWarnings"]}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.347+00:00"},"s":"I", "c":"NETWORK", "id":4915702, "ctx":"initandlisten","msg":"Updated wire specification","attr":{"oldSpec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":13},"outgoing":{"minWireVersion":0,"maxWireVersion":13},"isInternalClient":true},"newSpec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":13,"maxWireVersion":13},"outgoing":{"minWireVersion":13,"maxWireVersion":13},"isInternalClient":true}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.353+00:00"},"s":"I", "c":"STORAGE", "id":5071100, "ctx":"initandlisten","msg":"Clearing temp directory"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.358+00:00"},"s":"I", "c":"CONTROL", "id":20536, "ctx":"initandlisten","msg":"Flow Control is enabled on this deployment"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.363+00:00"},"s":"I", "c":"FTDC", "id":20625, "ctx":"initandlisten","msg":"Initializing full-time diagnostic data capture","attr":{"dataDirectory":"/data/db/diagnostic.data"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.375+00:00"},"s":"I", "c":"REPL", "id":6015317, "ctx":"initandlisten","msg":"Setting new configuration state","attr":{"newState":"ConfigReplicationDisabled","oldState":"ConfigPreStart"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.387+00:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"/tmp/mongodb-27017.sock"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.395+00:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"0.0.0.0"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.395+00:00"},"s":"I", "c":"NETWORK", "id":23016, "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:10.016+00:00"},"s":"I", "c":"FTDC", "id":20631, "ctx":"ftdc","msg":"Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost","attr":{"error":{"code":0,"codeName":"OK"}}}
bot_1 | Loading .env environment variables...
bot_1 | Traceback (most recent call last):
bot_1 | File "db_test.py", line 4, in <module>
bot_1 | if not Game.objects():
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/mongoengine/queryset/manager.py", line 38, in __get__
bot_1 | queryset = queryset_class(owner, owner._get_collection())
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/mongoengine/document.py", line 232, in _get_collection
bot_1 | if cls._meta.get("auto_create_index", True) and db.client.is_primary:
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1055, in is_primary
bot_1 | return self._server_property("is_writable")
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/mongo_client.py", line 836, in _server_property
bot_1 | server = self._topology.select_server(writable_server_selector)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 251, in select_server
bot_1 | servers = self.select_servers(selector, server_selection_timeout, address)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 212, in select_servers
bot_1 | server_descriptions = self._select_servers_loop(selector, server_timeout, address)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 227, in _select_servers_loop
bot_1 | raise ServerSelectionTimeoutError(
bot_1 | pymongo.errors.ServerSelectionTimeoutError: 127.0.0.1:27017: [Errno 111] Connection refused, Timeout: 30s, Topology Description: <TopologyDescription id: 629391bed324eb5fa3d28b0b, topology_type: Unknown, servers: [<ServerDescription ('127.0.0.1', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('127.0.0.1:27017: [Errno 111] Connection refused')>]>
mlb_bot_bot_1 exited with code 1
所以看起来它无法连接到数据库。我没有更改端口或其他东西,另一个例子对这些设置很有用,所以我真的不知道我错过了什么。没有 docker,它工作正常。
通过将 container_name 添加到 docker-compose 中的数据库服务,然后在 python 代码中连接时使用它的名称作为主机来解决。
我正在尝试 mongo 和 python 的非常简单的示例,但出现错误。
Docker 文件:
FROM python:3.8-slim
WORKDIR /code
COPY requirements.txt ./
RUN pip3 install pipenv
RUN pipenv install -r requirements.txt
COPY . .
ENTRYPOINT ["/bin/sh", "./run_test.sh"]
run_test.sh
#!/bin/bash
exec pipenv run python3 db_test.py
docker-compose.yaml:
version: '3.3'
volumes:
dbdata:
services:
db:
image: mongo
restart: always
volumes:
- "dbdata:/data/db"
bot:
build:
context: .
dockerfile: Dockerfile
depends_on:
- db
env_file:
- .env
db_test.py:
from db import Game
if __name__ == '__main__':
if not Game.objects():
Game(_id=1, first_team="first", second_team="second").save()
for game in Game.objects():
print(game._id)
print(game.first_team)
print(game.second_team)
db.py:
import datetime as dt
import os
from mongoengine import connect, Document, IntField, StringField, DateTimeField
from dotenv import load_dotenv
load_dotenv()
connect(os.getenv("DB_NAME"), host=os.getenv("DB_HOST"), port=27017)
class Game(Document):
_id = IntField(required=True, primary_key=True)
first_team = StringField(required=False)
second_team = StringField(required=False)
date = DateTimeField(default=dt.datetime.now, required=False)
if __name__ == "__main__":
pass
我正在做 docker-compose up
并得到了这个输出:
Starting mlb_bot_db_1 ... done
Recreating mlb_bot_bot_1 ... done
Attaching to mlb_bot_db_1, mlb_bot_bot_1
db_1 | {"t":{"$date":"2022-05-29T15:31:07.661+00:00"},"s":"I", "c":"CONTROL", "id":23285, "ctx":"-","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.663+00:00"},"s":"I", "c":"NETWORK", "id":4915701, "ctx":"-","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":13},"outgoing":{"minWireVersion":0,"maxWireVersion":13},"isInternalClient":true}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.670+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"main","msg":"No TransportLayer configured during NetworkInterface startup"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.670+00:00"},"s":"I", "c":"NETWORK", "id":4648601, "ctx":"main","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize."}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"main","msg":"No TransportLayer configured during NetworkInterface startup"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationDonorService","ns":"config.tenantMigrationDonors"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationRecipientService","ns":"config.tenantMigrationRecipients"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.675+00:00"},"s":"I", "c":"CONTROL", "id":5945603, "ctx":"main","msg":"Multi threading initialized"}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.678+00:00"},"s":"I", "c":"CONTROL", "id":4615611, "ctx":"initandlisten","msg":"MongoDB starting","attr":{"pid":1,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"d3d10018bf13"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":23403, "ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"5.0.8","gitVersion":"c87e1c23421bf79614baf500fda6622bd90f674e","openSSLVersion":"OpenSSL 1.1.1f 31 Mar 2020","modules":[],"allocator":"tcmalloc","environment":{"distmod":"ubuntu2004","distarch":"x86_64","target_arch":"x86_64"}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":51765, "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Ubuntu","version":"20.04"}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.679+00:00"},"s":"I", "c":"CONTROL", "id":21951, "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{"net":{"bindIp":"*"}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.682+00:00"},"s":"W", "c":"STORAGE", "id":22271, "ctx":"initandlisten","msg":"Detected unclean shutdown - Lock file is not empty","attr":{"lockFile":"/data/db/mongod.lock"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"I", "c":"STORAGE", "id":22270, "ctx":"initandlisten","msg":"Storage engine to use detected by data files","attr":{"dbpath":"/data/db","storageEngine":"wiredTiger"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"W", "c":"STORAGE", "id":22302, "ctx":"initandlisten","msg":"Recovering data from the last clean checkpoint."}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.685+00:00"},"s":"I", "c":"STORAGE", "id":22297, "ctx":"initandlisten","msg":"Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem","tags":["startupWarnings"]}
db_1 | {"t":{"$date":"2022-05-29T15:31:07.686+00:00"},"s":"I", "c":"STORAGE", "id":22315, "ctx":"initandlisten","msg":"Opening WiredTiger","attr":{"config":"create,cache_size=481M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),builtin_extension_config=(zstd=(compression_level=6)),file_manager=(close_idle_time=600,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.629+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:629657][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 11 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.739+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:739087][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 12 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.880+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:880331][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_ALL] Main recovery loop: starting at 11/2688 to 12/256"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:08.883+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838268:883919][1:0x7f2a83021c80], txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 11 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.163+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:163282][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_PROGRESS] Recovering log 12 through 12"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.262+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:262950][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_ALL] Set global recovery timestamp: (0, 0)"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.263+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:263516][1:0x7f2a83021c80], file:sizeStorer.wt, txn-recover: [WT_VERB_RECOVERY_ALL] Set global oldest timestamp: (0, 0)"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.296+00:00"},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1653838269:296578][1:0x7f2a83021c80], WT_SESSION.checkpoint: [WT_VERB_CHECKPOINT_PROGRESS] saving checkpoint snapshot min: 6, snapshot max: 6 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 1714"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.309+00:00"},"s":"I", "c":"STORAGE", "id":4795906, "ctx":"initandlisten","msg":"WiredTiger opened","attr":{"durationMillis":1623}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.311+00:00"},"s":"I", "c":"RECOVERY", "id":23987, "ctx":"initandlisten","msg":"WiredTiger recoveryTimestamp","attr":{"recoveryTimestamp":{"$timestamp":{"t":0,"i":0}}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.317+00:00"},"s":"I", "c":"STORAGE", "id":4366408, "ctx":"initandlisten","msg":"No table logging settings modifications are required for existing WiredTiger tables","attr":{"loggingEnabled":true}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.322+00:00"},"s":"I", "c":"STORAGE", "id":22262, "ctx":"initandlisten","msg":"Timestamp monitor starting"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.340+00:00"},"s":"W", "c":"CONTROL", "id":22120, "ctx":"initandlisten","msg":"Access control is not enabled for the database. Read and write access to data and configuration is unrestricted","tags":["startupWarnings"]}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.347+00:00"},"s":"I", "c":"NETWORK", "id":4915702, "ctx":"initandlisten","msg":"Updated wire specification","attr":{"oldSpec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":13},"outgoing":{"minWireVersion":0,"maxWireVersion":13},"isInternalClient":true},"newSpec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient":{"minWireVersion":13,"maxWireVersion":13},"outgoing":{"minWireVersion":13,"maxWireVersion":13},"isInternalClient":true}}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.353+00:00"},"s":"I", "c":"STORAGE", "id":5071100, "ctx":"initandlisten","msg":"Clearing temp directory"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.358+00:00"},"s":"I", "c":"CONTROL", "id":20536, "ctx":"initandlisten","msg":"Flow Control is enabled on this deployment"}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.363+00:00"},"s":"I", "c":"FTDC", "id":20625, "ctx":"initandlisten","msg":"Initializing full-time diagnostic data capture","attr":{"dataDirectory":"/data/db/diagnostic.data"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.375+00:00"},"s":"I", "c":"REPL", "id":6015317, "ctx":"initandlisten","msg":"Setting new configuration state","attr":{"newState":"ConfigReplicationDisabled","oldState":"ConfigPreStart"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.387+00:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"/tmp/mongodb-27017.sock"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.395+00:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"0.0.0.0"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:09.395+00:00"},"s":"I", "c":"NETWORK", "id":23016, "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}
db_1 | {"t":{"$date":"2022-05-29T15:31:10.016+00:00"},"s":"I", "c":"FTDC", "id":20631, "ctx":"ftdc","msg":"Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost","attr":{"error":{"code":0,"codeName":"OK"}}}
bot_1 | Loading .env environment variables...
bot_1 | Traceback (most recent call last):
bot_1 | File "db_test.py", line 4, in <module>
bot_1 | if not Game.objects():
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/mongoengine/queryset/manager.py", line 38, in __get__
bot_1 | queryset = queryset_class(owner, owner._get_collection())
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/mongoengine/document.py", line 232, in _get_collection
bot_1 | if cls._meta.get("auto_create_index", True) and db.client.is_primary:
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1055, in is_primary
bot_1 | return self._server_property("is_writable")
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/mongo_client.py", line 836, in _server_property
bot_1 | server = self._topology.select_server(writable_server_selector)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 251, in select_server
bot_1 | servers = self.select_servers(selector, server_selection_timeout, address)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 212, in select_servers
bot_1 | server_descriptions = self._select_servers_loop(selector, server_timeout, address)
bot_1 | File "/root/.local/share/virtualenvs/code-_Py8Si6I/lib/python3.8/site-packages/pymongo/topology.py", line 227, in _select_servers_loop
bot_1 | raise ServerSelectionTimeoutError(
bot_1 | pymongo.errors.ServerSelectionTimeoutError: 127.0.0.1:27017: [Errno 111] Connection refused, Timeout: 30s, Topology Description: <TopologyDescription id: 629391bed324eb5fa3d28b0b, topology_type: Unknown, servers: [<ServerDescription ('127.0.0.1', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('127.0.0.1:27017: [Errno 111] Connection refused')>]>
mlb_bot_bot_1 exited with code 1
所以看起来它无法连接到数据库。我没有更改端口或其他东西,另一个例子对这些设置很有用,所以我真的不知道我错过了什么。没有 docker,它工作正常。
通过将 container_name 添加到 docker-compose 中的数据库服务,然后在 python 代码中连接时使用它的名称作为主机来解决。