首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从环境ARG中设置dockerfile中的WORKDIR?

如何从环境ARG中设置dockerfile中的WORKDIR?
EN

Stack Overflow用户
提问于 2022-03-24 11:17:39
回答 1查看 592关注 0票数 2

我想将WORKDIR /opt/app替换为全局ARG,但它不起作用:

代码语言:javascript
复制
ARG BUILD_IMAGE=maven:3.8.4-eclipse-temurin-11
ARG APP=/opt/app

FROM $BUILD_IMAGE as dependencies
#WORKDIR /opt/app #this would pass!
WORKDIR ${APP}

结果:

代码语言:javascript
复制
Error response from daemon: cannot normalize nothing
Failed to deploy Dockerfile': Can't retrieve image ID from build stream

为什么?

EN

回答 1

Stack Overflow用户

发布于 2022-03-24 11:26:04

ARGs的作用域被限定到舞台,或者在文件顶部定义的from行。因此,在FROM行之后定义ARG,最好是在使用它之前(为了缓存效率)。

代码语言:javascript
复制
# define top level args used in FROM lines here
ARG BUILD_IMAGE=maven:3.8.4-eclipse-temurin-11

FROM $BUILD_IMAGE as dependencies
# define your args scoped within the stage after the FROM for that stage
ARG APP=/opt/app
WORKDIR ${APP}

如果您想设置一次arg值并重用它,则如下所示:

代码语言:javascript
复制
# define top level args used in FROM lines here
ARG BUILD_IMAGE=maven:3.8.4-eclipse-temurin-11
# the top section can also define the default value of an arg that is defined elsewhere
ARG APP=/opt/app

FROM $BUILD_IMAGE as dependencies
# define your args scoped within the stage after the FROM for that stage
ARG APP
WORKDIR ${APP}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71601512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档