我正在尝试在构建我的 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/、/tempDir/built/和其他仍然得到同样的错误。
任何人都可以帮助解决这个问题?
最佳答案
您正在尝试复制容器中的内容,因此 COPY
将不起作用,因为它特定于您的主机 --> 容器。
相反,您必须在容器内运行 bash 命令。RUN cp -rf built /data/