当前位置: 首页 > 知识库问答 >
问题:

复制文件-Dockerfile旁边-不工作并阻止docker生成

须敏学
2023-03-14

我正在尝试构建一个docker容器,其中包含mlflow服务器,并使用toml文件作为依赖项。(两个toml完全相同,这只是一种尝试弄清楚的方法)树:

──docker-entrypoint.sh
──Dockerfile
───文件
│ └── pyproject.toml
──git.sh
──pyproject.toml
───README. md

如您所见,我的toml文件在DockerfileCOPYpyproject.toml旁边。/仍然不工作

Dockerfile

FROM python:3.6.10-alpine3.10 as base
LABEL maintainer=""

ENV PYTHONFAULTHANDLER 1 
ENV    PYTHONHASHSEED random 
ENV    PYTHONUNBUFFERED 1

ENV MLFLOW_HOME ./ 
ENV SERVER_PORT 5000   
ENV    MLFLOW_VERSION 0.7.0 
ENV    SERVER_HOST 0.0.0.0  
ENV    FILE_STORE ${MLFLOW_HOME}/fileStore  
ENV    ARTIFACT_STORE ${MLFLOW_HOME}/artifactStore 
ENV PIP_DEFAULT_TIMEOUT 100
ENV    PIP_DISABLE_PIP_VERSION_CHECK on
ENV    PIP_NO_CACHE_DIR  off 
ENV    POETRY_VERSION  1.0.0 

WORKDIR ${MLFLOW_HOME}

FROM base as builder

RUN apk update  \
    && apk add --no-cache make gcc musl-dev python3-dev libffi-dev openssl-dev subversion
#download project file from github  repo 
RUN    svn export https://github.com/MChrys/QuickSign/trunk/  \
    && pip install poetry==${POETRY_VERSION} \
    && mkdir -p ${FILE_STORE}  \
    && mkdir -p ${ARTIFACT_STORE}\
    && python -m venv /venv

COPY  pyproject.toml ./
RUN poetry export -f requirements.txt | /venv/bin/pip install -r  --allow-root-install /dev/stdin 

COPY . .
RUN poetry build && /venv/bin/pip install dist/*.whl

FROM base as final

RUN apk add --no-cache libffi libpq
COPY --from=builder /venv /venv
COPY docker-entrypoint.sh ./

EXPOSE $SERVER_PORT

VOLUME ["${FILE_STORE}", "${ARTIFACT_STORE}"]

CMD ["./docker-entrypoint.sh"]

build命令:

docker build - < Dockerfile

我得到了这个错误:

Step 21/32 : COPY  pyproject.toml ./
COPY failed: stat /var/lib/docker/tmp/docker-builder335195979/pyproject.toml: no such file or   directory

pyproject.toml

requires = ["poetry>=1.0.0", "mlflow>=0.7.0", "python>=3.6"]
build-backend = "poetry.masonry.api"

[tool.poetry]
name = "Sign"
description = ""
version = "1.0.0"
readme = "README.md"
authors = [
  ""
]

license = "MIT"


[tool.poetry.dependencies]
python = "3.6"
numpy = "1.14.3"
scipy = "*"
pandas = "0.22.0"
scikit-learn = "0.19.1"
cloudpickle = "*"
mlflow ="0.7.0"
tensorflow = "^2.0.0"


[tool.poetry.dev-dependencies]

pylint = "*"
docker-compose = "^1.25.0"
docker-image-size-limit = "^0.2.0"
tomlkit = "^0.5.8"

docker入口点。上海

#!/bin/sh

set -e

. /venv/bin/activate

mlflow server \
    --file-store $FILE_STORE \
    --default-artifact-root $ARTIFACT_STORE \
    --host $SERVER_HOST \
    --port $SERVER_PORT

如果我添加运行pwd;在第一次复制之前,我获得:

Step 20/31 : RUN pwd; ls
 ---> Running in e8ec36dd6ca8
/
artifactStore
bin
dev
etc
fileStore
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
trunk
usr
var
venv
Removing intermediate container e8ec36dd6ca8
 ---> d7bba641bd7c
Step 21/31 : COPY  pyproject.toml ./
COPY failed: stat /var/lib/docker/tmp/docker-builder392824737/pyproject.toml: no such file or directory

共有1个答案

雍志新
2023-03-14

尝试docker build-t test。

而不是docker build-

 类似资料:
  • 我正在编写来构建应用程序。我知道您可以使用 (请参见将文件从Docker容器复制到主机),但我只想运行 在Dockerfile中是否有一个命令可以用于从容器中复制到主机中?像的反义词吗?

  • 我有以下文件夹结构: 我有我的micro-hr文件夹,其中是我的主包,我有一个本地lib,它是rabbitmq 这是我的dockerfile: docker撰写: 这是我的包裹。我的主包后端/微hr上的json: 我不知道我错在哪里,基本上我在我的主包中使用npm链接链接到我的lib,并尝试在docker中创建文件夹,但无济于事。 docker构建错误: 步骤6/10:复制/rabbitmq/包。

  • 我正在编写一个Dockerfile来构建一个应用程序。我知道你可以用 (请参阅将文件从Docker容器复制到主机),但我想只运行 并让它将我的创建的构建工件转储到我的主机文件系统的某个地方。 Dockerfile中是否有可以用于从容器复制到主机的命令?与复制相反?

  • 我正在使用docker容器来编译一段代码,我不一定要将其docker化。我已使用必要的构建工具设置了一个映像,但我希望以某种方式将编译后的文件从容器中取出,而无需使用docker cp container:/file host/file命令。换句话说,我希望自动化这个过程,以便在构建完成后,将生成的文件复制到主机。 Dockerfile

  • 我无法从dockerfile文件夹的外部复制文件。docker compose build出现错误: 有文件夹结构 这是Dockerfile 这是我的docker compose文件 非常感谢你的帮助。

  • 我对docker并不陌生,但我主要使用预构建的图像,我使用Docker-Compose连接这些图像。我需要一个超级基本的容器,它只读取日志文件并将内容流式传输到stdout,因为我在另一个容器中有权限问题。 以下是我的dockerfile: sheel脚本如下所示(目前--我正在测试) 正如您所看到的,我希望截断一些日志文件,然后连续地读取它。