docker - 在 Dockerfile 中定义一个语言环境变量
问题描述
有什么方法可以创建Dockerfile
仅在构建过程中可用的局部变量?我可以看到,如果我用ENV
关键字定义了一个变量,那么它稍后将在图像中作为导出的环境变量提供。但我想有一个只有构建范围的“技术”变量。
我想避免在我的 Doclerfile 中重复,所以我想有一个只能从 Dockerfile 获得的变量:
ENV MY_JAR=myJar.jar
COPY bin/$MY_JAR $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/lib/
COPY bin/$MY_JAR $ORACLE_HOME/wlserver/server/lib/mbeantypes/
但是MY_JAR
变量出现在容器中。我在那里不需要它。它只会让用户感到困惑。我能以某种方式做到这一点吗?
解决方案
使用ARG
代替ENV
ARG MY_JAR=myJar.jar # ARG is only available during the build of a Docker image
COPY bin/$MY_JAR $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/lib/
COPY bin/$MY_JAR $ORACLE_HOME/wlserver/server/lib/mbeantypes/
推荐阅读
- java - config.properties 文件如果不存在,如何在控制台中传递消息并继续下一个设置而不抛出异常
- python - 如何将引用的 numpy 数组更改为自身的切片?
- sql - 将数据库绑定到组合框并刷新
- powershell - Powershell - 如何根据字符拆分字符串?
- excel - 运行时错误 5825:已删除 .docm 导入的对象
- javascript - Javascript,Ajax:错误请求 400
- git - 如何从当前的后继分支更新基本分支的文件?
- php - 配置错误:不满足包要求(sqlite3 > 3.7.4)
- c# - 在 IIS 7 Windows Server 2008 R2 Enterprise SP2 上激活 MVC 网站
- mongodb - MongoDB唯一索引允许重复