Docker ONBUILD COPY似乎不复制文件

Mik*_*keV 6 docker dockerfile

我在执行docker build命令时尝试将文件复制到docker镜像.我不确定我做错了什么,因为这似乎适用于docker rails onbuild文件,但不适用于我的自定义dockerfile.

这是我的Dockerfile

FROM ubuntu:14.04

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

ONBUILD COPY Gemfile /usr/src/app

CMD ["tail", "-f", "/dev/null"]
Run Code Online (Sandbox Code Playgroud)

我运行的docker命令如下.

docker build -t copy-test .
docker run --name run-test -d copy-test
docker exec -i -t 2e9adebae0fc /bin/bash
Run Code Online (Sandbox Code Playgroud)

当我用/usr/src/appdocker exec连接到容器时,它会启动,但Gemfile不在那里.我不明白为什么mkdir和WORKDIR指令似乎有效,但ONBUILD COPY却没有.(是的,我调用这些命令的目录确实存在Gemfile)

mol*_*ier 9

您必须使用它COPY来构建您的图像.ONBUILD如果您的图像是用于构建其他图像的模板,请使用此选项.

请参阅Docker文档:

当图像用作另一个构建的基础时,ONBUILD指令向图像添加将在稍后执行的触发指令.触发器将在下游构建的上下文中执行,就好像它是在下游Dockerfile中的FROM指令之后立即插入的一样.