首页 > 解决方案 > Docker 图像未正确加载 FastText 向量

问题描述

在能够使用 Docker 映像在本地执行部署后,我无法从 Google Cloud Platform 进行部署。将图像拉到 Google Cloud Shell 并使用此命令后docker run -p 8081:80 andronikmk/toxic-content-monitoring:0.1。这是我得到的错误。我尝试以多种方式解决问题,但没有成功。任何帮助,将不胜感激。谢谢。

    INFO:     Downloading wiki.en.vec
    wiki.en.vec:  22%|██▏       | 1.42G/6.60G [00:54<03:19, 26.0MB/s]    
    Traceback (most recent call last):
      File "/usr/local/bin/uvicorn", line 8, in <module>
        sys.exit(main())
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 829, in __call__
        return self.main(*args, **kwargs)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 782, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python3.7/site-packages/click/core.py", line 610, in invoke
        return callback(*args, **kwargs)
      File "/usr/local/lib/python3.7/site-packages/uvicorn/main.py", line 331, in main
      run(**kwargs)
      File "/usr/local/lib/python3.7/site-packages/uvicorn/main.py", line 354, in run
        server.run()
      File "/usr/local/lib/python3.7/site-packages/uvicorn/main.py", line 382, in run
        loop.run_until_complete(self.serve(sockets=sockets))
      File "uvloop/loop.pyx", line 1456, in uvloop.loop.Loop.run_until_complete
      File "/usr/local/lib/python3.7/site-packages/uvicorn/main.py", line 389, in serve
        config.load()
      File "/usr/local/lib/python3.7/site-packages/uvicorn/config.py", line 288, in load
        self.loaded_app = import_from_string(self.app)
      File "/usr/local/lib/python3.7/site-packages/uvicorn/importer.py", line 20, in import_from_string
        module = importlib.import_module(module_str)
      File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

      File "./main.py", line 10, in <module>
        from model import ToxicClassifierModel, vectors
      File "./model.py", line 13, in <module>
        vectors = FastText()
      File "/usr/local/lib/python3.7/site-packages/torchnlp/word_to_vector/fast_text.py", line 83, in __init__
        super(FastText, self).__init__(name, url=url, **kwargs)
      File "/usr/local/lib/python3.7/site-packages/torchnlp/word_to_vector/pretrained_word_vectors.py", line 72, in __init__
        self.cache(name, cache, url=url)

 File "/usr/local/lib/python3.7/site-packages/torchnlp/word_to_vector/pretrained_word_vectors.py", line 111, in cache
    download_file_maybe_extract(url=url, directory=cache, check_files=[name])
  File "/usr/local/lib/python3.7/site-packages/torchnlp/download.py", line 165, in download_file_maybe_extract
    urllib.request.urlretrieve(url, filename=filepath, reporthook=_reporthook(t))
  File "/usr/local/lib/python3.7/urllib/request.py", line 276, in urlretrieve
    block = fp.read(bs)
  File "/usr/local/lib/python3.7/http/client.py", line 457, in read
    n = self.readinto(b)
  File "/usr/local/lib/python3.7/http/client.py", line 501, in readinto
    n = self.fp.readinto(b)
  File "/usr/local/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/local/lib/python3.7/ssl.py", line 1071, in recv_into
    return self.read(nbytes, buffer)
 File "/usr/local/lib/python3.7/ssl.py", line 929, in read
    return self._sslobj.read(len, buffer)
ConnectionResetError: [Errno 104] Connection reset by peer

这是 Dockerfile

FROM python:3.7

# install build utilities
RUN apt-get update && \
    apt-get install -y gcc make apt-transport-https ca-certificates build-essential

EXPOSE 80

WORKDIR  /usr/src/app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY src/ /usr/src/app
COPY data/ /usr/src/app

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]

标签: pythondockergoogle-cloud-platform

解决方案


推荐阅读