[英]How to run a bash script from dockerfile
我正在使用 bash 脚本 ( run.sh
) 来运行 python 文件 ( calculate_ssp.py
)。 代码工作正常。 文件夹结构如下
├── dataset
└── dataset_1.csv
├── Dockerfile
├── __init__.py
├── output
├── run.sh
├── scripts
│ ├── calculate_ssp.py
│ ├── __init__.py
bash 脚本是
#!/bin/bash
python3 -m scripts.calculate_ssp 0.5
现在,我正在尝试从Dockerfile
运行 bash 脚本 ( run.sh
)。 Dockerfile的内容是
#Download base image ubuntu 20.04
FROM ubuntu:20.04
#Download python
FROM python:3.8.5
ADD run.sh .
RUN pip install pandas
RUN pip install rdkit-pypi
CMD ["bash", "run.sh"]
但是,我收到一个错误/usr/local/bin/python3: Error while finding module specification for 'scripts.calculate_ssp' (ModuleNotFoundError: No module named 'scripts')
你能告诉我为什么会出现错误吗(因为代码在 bash 脚本中运行良好)?
您需要 package 映像中脚本所需的所有文件。 您可以删除 Ubuntu 基本映像,因为它未被使用。 ( python
基本图像基于已经提供bash
的其他图像。)
#Download python
FROM python:3.8.5
RUN pip install pandas
RUN pip install rdkit-pypi
ADD run.sh .
ADD scripts/ ./scripts
CMD ["bash", "run.sh"]
在 Bash 脚本中,编写一个程序,创建一个名为 Dockerfile 的文件。Dockerfile 的内容应该有以下命令:
首先,基础镜像应该通过 FROM 命令安装 python3。 那么 Dockerfile 的 rest 应该如下所示:
运行 pip 安装 {{MODULES}} CMD ["python", {{FILENAME}}]
{{MODULES}} 应替换为以下模块:numpy、scipy 和 pandas,全部在一行中。 {{FILENAME}} 应替换为 ./main.pyv
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.