我是Docker的新手,所以我确定我所缺少的只是几句话,但是即使谷歌搜索了几个小时,我也无法弄清楚。
python_code_to_run.py :只需加载数据集并保存...
import pandas as pd
import numpy as np
import os
import h2o
from h2o.estimators.gbm import H2OGradientBoostingEstimator
airlines= h2o.import_file("https://s3.amazonaws.com/h2o-public-test-
data/smalldata/airlines/allyears2k_headers.zip")
airlines_data = pd.DataFrame(airlines)
airlines_data.to_csv('airlines_dataset_dled.csv', index=False )
DockerFile :当我使用-build命令时,它将运行……
From python:3.7-slim-buster
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get -y install unzip build-essential libaio-dev
RUN python3 --version
RUN pip3 --version
RUN mkdir -p /src
COPY . /src
COPY /app/python_code_to_run.py /src
RUN chmod +x src/run_py_file.sh
RUN chmod +x src/python_code_to_run.py
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "/bin/sh", "docker_test.sh" ]
#ENTRYPOINT [ "bash" , "run_py_file.sh" ] # doesn't work either
** run_py_file.sh **
python /app/python_code_to_run.py
我有一个文件夹:
- LearningDocker
DockerFile
script_to_trigger_code.sh
- app
- python_code_to_run.py
我可以通过运行以下命令来构建docker镜像:
docker build -t my_attempt_to_learn_docker .
然后我将使用它提供的ID#并运行:
docker run -v /Users/myname/Documents/docker_folder f28384723
我不断收到错误
**/bash: run_py_file.sh: No such file or directory**
有人可以帮我解决我在这里缺少的东西吗?我正在努力学习如何正确执行此操作,因为我无法启动和运行我的第一部分代码。 app / python_code_to_run.py 的位置和拼写完全相同。与sh文件相同。
我已经为 CMD [“ run_py_file.sh”] 尝试了上百万种组合,但我只是想不通。我必须丢失要放入代码的 CMD / ENTRYPOINT 部分中的内容的魔术组合。任何帮助表示赞赏!
答案 0 :(得分:1)
将WORKDIR
添加到指向/src
的dockerfile中。您的CMD
指令在python映像的默认WORKDIR
中执行,可能在根目录下,而不是您的.sh文件中。
答案 1 :(得分:0)
看起来您的主机目录结构中确实没有一个名为run_py_file.sh
的文件,但是您在Dockerfile中引用了另一个脚本。
我认为核心问题是working directory defaults to /
,但是您的CMD和ENTRYPOINT块假定您位于/src
目录中。
尝试在您的dockerfile中添加一个WORKDIR /src
块,或者使用一个绝对路径指向在CMD
或ENTRYPOINT
块中复制的实际文件。
CMD [ "/bin/sh", "/src/script_to_trigger_code.sh" ]