![](/img/trans.png)
[英]Docker container runs locally but fails on Cloud Run to serve dbt docs
[英]Docker container runs locally but fails on Cloud Run
我将项目从 PIP 移至 Poetry,而我的 Docker 容器无法在 Google Cloud Run 上运行。
Docker 中的最后一个字符串:
CMD ["poetry", "run", "uwsgi", "--http-socket", "0.0.0.0:80", "--wsgi-file", "/server/app/main.py", "--callable", "app", "-b 65535"]
它在本地工作,在其他笔记本电脑上工作,在 Cloud Run Emulator 中工作,但是当我尝试在 Cloud Run 上运行它时失败。
这是 Cloud Run 日志:
Creating virtualenv my-project-xTUGyw3C-py3.8 in /home/.cache/pypoetry/virtualenvs
FileNotFoundError
[Errno 2] No such file or directory: b'/bin/uwsgi'
at /usr/local/lib/python3.8/os.py:601 in _execvpe
597│ path_list = map(fsencode, path_list)
598│ for dir in path_list:
599│ fullname = path.join(dir, file)
600│ try:
→ 601│ exec_func(fullname, *argrest)
602│ except (FileNotFoundError, NotADirectoryError) as e:
603│ last_exc = e
604│ except OSError as e:
605│ last_exc = e
Container called exit(1).
它有正确的端口设置。 它不使用任何环境变量。 我不使用通过 COPY 传递给 Docker 的卷、文件。
日志显示应用程序找不到 uwsgi 文件。 该文件在本地版本中也不存在,但可以正常运行。
docker 容器的行为有何不同?
UPD:我的 Docker 文件
FROM python:3.8
WORKDIR server
ENV PYTHONPATH $PYTHONPATH:/server
RUN pip install poetry==1.1.11
COPY poetry.lock /server
COPY pyproject.toml /server
RUN poetry install
EXPOSE 80
COPY /data /server/data
COPY /test /server/test
COPY /app /server/app
CMD ["poetry", "run", "uwsgi", "--http-socket", "0.0.0.0:80", "--wsgi-file", "/server/app/main.py", "--callable", "app", "-b 65535"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.