python - 如何将参数传递给在 docker 容器内运行的 python 脚本?

标签 python docker dockerfile parameter-passing

我在 docker 容器中运行 python 脚本。根据传递的参数,我的脚本应该显示不同的信息。我想通过 docker run {my_image_name} {parameters} 传递这个参数命令,而不是 {parameters} 我想输入一些我的脚本期望接收的自定义值。找到了一些关于参数和环境变量的信息,但不明白。谁能解释如何解决我的问题?我应该在 dockerfile 中添加什么?
Dockerfile 内容:

FROM python:3.8.2-buster
WORKDIR /usr/src/app
COPY metrics.py .
RUN pip install --upgrade pip
RUN python -m pip install psutil
CMD python /usr/src/app/metrics.py

当我运行 docker run {my_image_name} {my_script_name} {parameter} 我得到:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"metrics.py\": executable file not found in $PATH": unknown.

我在 window 上工作。

最佳答案

您缺少 ENTRYPOINT

Docker 文件应该是这样的:

FROM python:3.8.2-buster
WORKDIR /usr/src/app
COPY metrics.py .
RUN pip install --upgrade pip
RUN python -m pip install psutil
ENTRYPOINT ["python"]
CMD ["/usr/src/app/metrics.py"]

关于python - 如何将参数传递给在 docker 容器内运行的 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60688834/

相关文章:

python - "mro()"有什么作用?

docker - cpu限制后失败docker容器

docker - 以Jenkins Slave的身份运行Docker容器

构建 Docker 镜像时的 Azure Pipeline "Permission denied"

python - pip - 无法找到 vcvarsall.bat

Python游戏 Action

python - Dockerfile RUN 命令返回 "No such file or directory"

docker - 在 DockerFile 中定义 VOLUME 挂载点而不是 adhoc cmd-line -v 的目的是什么?

python - 更改类型(pandas dataframe)时如何处理 'invalid literal for int() with base 10'?

node.js - Docker 构建 npm 错误日志