问题描述
我正在使用 Docker 容器和 Docker-compose 设置本地 Azure Blob 存储。 但是,当我开始创建 blob 容器并上传文件时,它会引发如下错误。
NSComboBox ControlSize:
large/regular height = 25;
small height = 22;
mini height = 22;
这是我的 docker-compose:
azure.common.AzureException: httpconnectionPool(host='127.0.0.1',port=10000): Max retries exceeded with url: /devstoreaccount1/quickstartblobs?restype=container (Caused by NewConnectionError('<urllib3.connection.httpconnection object at 0x7f1068d0f748>: Failed to establish a new connection: [Errno 111] Connection refused',))
需求.txt
version: "3.9"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- DEBUG=FALSE
- AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwjpllmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
- 5678:5678
depends_on:
- db
azurite:
image: mcr.microsoft.com/azure-storage/azurite
ports:
- "127.0.0.1:10000:10000"
代码:
djangorestframework==3.11.2
Django==3.1.8
Pygments==2.7.4
Markdown==3.2.1
coreapi==2.3.3
psycopg2-binary==2.8.4
dj-database-url==0.5.0
gunicorn==20.0.4
whitenoise==5.0.1
PyYAML==5.4
azure-storage-blob==2.1.0
ptvsd==4.3.2
azure-common==1.1.23
azure-storage-common==2.1.0
requests==2.25.1
six==1.11.0
urllib3==1.26.3
解决方法
您可以在撰写文件中删除 azurite 服务的端口部分,并在您的应用程序中提供连接字符串并将 blob 端点(如此处所述:https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite#connection-strings)指定为 ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-5990df7ecb15> in <module>
8 )
9
---> 10 trainer.fit(model,datamodule = FruitsDataModule)
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in fit(self,model,train_dataloader,val_dataloaders,datamodule)
497
498 # dispath `start_training` or `start_testing` or `start_predicting`
--> 499 self.dispatch()
500
501 # plugin will finalized fitting (e.g. ddp_spawn will load trained model)
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in dispatch(self)
544
545 else:
--> 546 self.accelerator.start_training(self)
547
548 def train_or_test_or_predict(self):
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/accelerators/accelerator.py in start_training(self,trainer)
71
72 def start_training(self,trainer):
---> 73 self.training_type_plugin.start_training(trainer)
74
75 def start_testing(self,trainer):
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py in start_training(self,trainer)
112 def start_training(self,trainer: 'Trainer') -> None:
113 # double dispatch to initiate the training loop
--> 114 self._results = trainer.run_train()
115
116 def start_testing(self,trainer: 'Trainer') -> None:
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in run_train(self)
605 self.progress_bar_callback.disable()
606
--> 607 self.run_sanity_check(self.lightning_module)
608
609 # set stage for logging
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py in run_sanity_check(self,ref_model)
852 # to make sure program won't crash during val
853 if should_sanity_check:
--> 854 self.reset_val_dataloader(ref_model)
855 self.num_sanity_val_batches = [
856 min(self.num_sanity_val_steps,val_batches) for val_batches in self.num_val_batches
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in reset_val_dataloader(self,model)
362 has_step = is_overridden('validation_step',model)
363 if has_loader and has_step:
--> 364 self.num_val_batches,self.val_dataloaders = self._reset_eval_dataloader(model,'val')
365
366 def reset_test_dataloader(self,model) -> None:
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in _reset_eval_dataloader(self,mode)
276 # always get the loaders first so we can count how many there are
277 loader_name = f'{mode}_dataloader'
--> 278 dataloaders = self.request_dataloader(getattr(model,loader_name))
279
280 if not isinstance(dataloaders,list):
/opt/conda/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py in request_dataloader(self,dataloader_fx)
396 The dataloader
397 """
--> 398 dataloader = dataloader_fx()
399 dataloader = self._flatten_dl_only(dataloader)
400
TypeError: val_dataloader() missing 1 required positional argument: 'self'
当您使用 docker 本地桥接器(为使用 compose 部署的服务创建)时,如果明确提供了容器名称,则服务名称可用于访问服务。