gpt4 book ai didi

docker - 如何在 Docker 构建中使用 COPY 命令?

转载 作者:IT老高 更新时间:2023-10-28 21:36:03 25 4
gpt4 key购买 nike

我正在尝试在构建我的 docker 镜像时执行一些自动化操作。以下是我在 Windows 8、Kitematic、Virtual Box 中运行的代码:

FROM node:6

# Create directory
RUN mkdir -p /tempDir && mkdir -p /tempDir/built && mkdir -p /data

# Setup build environment
COPY . /tempDir
RUN npm install -g gulp typings

# Build from source
WORKDIR /tempDir
RUN npm install && typings install && gulp build

到这里,一切都很好,成功将我的 typescript 构建到/tempDir/built 目录中的 javascript。我猛击我的容器,它看起来像这样:

tempDir/gulpfile.js
tempDir/typings
tempDir/src
tempDir/built

我的下一步是将这个构建的文件夹移动到另一个目录,然后删除 tempDir。我的问题是 COPY 命令无法按预期工作。

COPY built/* /data/

我不断收到类似“没有这样的文件或目录”或“lstat built/:没有这样的文件或目录”的错误。我尝试了 ./built、./built/、built/、/tempDir/built/和其他仍然得到相同的错误。有人可以帮忙吗?

最佳答案

COPY 将文件从主机文件系统复制到容器中。看起来您想将文件从容器中的一个目录复制到另一个目录。为此,您需要使用 RUNcp

RUN cp -r built/* /data/

由于您将删除 /tempDir/ 目录,因此您可以通过重命名目录来加快速度:

RUN mv built /data

这样您就不必复制数据然后删除原始数据。

关于docker - 如何在 Docker 构建中使用 COPY 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39481276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com