我想把我文件夹中的所有python、.py
文件复制到我的/app
文件夹中,根据这个SO问题,我应该可以只做
FROM python:3.10.2-slim-bullseye
#Copy stuff into /app
COPY ./*.py /app
# set workdir as "/app"
WORKDIR /app
#run
python train.py
但是当它到达第三行CCD_ 4时抛出错误CCD_。
我试过几个";版本";即COPY *.py /app
、COPY /*.py /app
,但两者都不起的作用
如果我只复制所有内容,即COPY . /app
,它可以很好地工作,但我不想用我不需要的东西浮动我的.dockerignore
,我只想复制我的python文件。
您需要首先创建应用程序目录
FROM python:3.10.2-slim-bullseye
# Create directory
RUN mkdir /app
#Copy stuff into /app
COPY ./*.py /app
# set workdir as "/app"
WORKDIR /app
#run
python train.py
COPY
指令对右侧的语法有一些挑剔的规则。文件目前说明:
如果直接或由于使用通配符指定了多个
<src>
资源,则<dest>
必须是一个目录,并且必须以斜线/
结尾。如果
<dest>
没有以尾部斜杠结尾,则它将被视为常规文件,并且<src>
的内容将在<dest>
处写入。
因此,当您将单个*.py
文件COPY
到/app
而不带尾部斜杠时,Dockerfile会创建一个名为/app
的文件,即单个Python文件。然后,您从WORKDIR
中得到错误,即/app
不是目录,而是Python文件。
确保COPY
的右侧以斜线结尾:
COPY *.py /app/ # <-- ends with /