我决定使用COPY的多源形式来保存中间命令,但是当我运行它时,会弹出以下错误:
Step 17/22 : COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH
When using COPY with more than one source file, the destination must be a directory and end with a /
Run Code Online (Sandbox Code Playgroud)
在 Dockerfile 我有这个:
ARG APP_PATH='/usr/share/app/'
ONBUILD COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,这发生在ONBUILD有和没有的情况下,碰巧我粘贴在ONBUILD示例中
我试过使用和不使用单引号。arg 有一个尾部斜杠并且是一个目录,那么为什么构建不尊重它?
我想使用这个 Dockerfile 将这个 Dockerfile 变成一个模板,ONBUILD所以如果我能确保APP_PATHarg 填充了一个可以工作的默认值,那就太好了。
任何帮助或见解将不胜感激。
Ren*_*ery 57
就我而言,在末尾添加(前)斜杠(在 docker 错误消息之后)就足够了,如下所示:
COPY package*.json .#(失败!)
COPY package*.json ./#(有效:)
答案是,从 Docker 版本 18.09.0 开始,构建 4d60db4,不要这样做,因为它不起作用。
我最终对目标目录(以及 chown args)进行了硬编码:
ONBUILD COPY --chown=app:app Gemfile Gemfile.lock /usr/share/app/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14160 次 |
| 最近记录: |