docker - Docker ARG 或 ENV 在 Dockerfile 中未按预期工作
问题描述
我使用 Docker Toolbox for windows(用于兼容性问题)并在 Dockerfile 中指定一个ARG
,以便在使用--build-arg
命令构建映像时可以使用它。在 dockerfile 里面我也有一些COPY
命令,我想在那里使用我的变量,但是当我运行 docker build 时--build-arg VERSION_APP=something
。它不翻译变量。我已经用过$VERSION_APP
or${VERSION_APP}
或%VERSION_APP%
。
FROM alpine
MAINTAINER Marinos
ARG VERSION_APP
RUN apk update && apk add dos2unix
COPY script.sh /home/script.sh
RUN chmod a+x /home/script.sh
RUN dos2unix /home/script.sh
RUN sh /home/script.sh
COPY installation.txt /home/Desktop/${VERSION_APP}
更新
看来您应该将整个路径传递给您使用的变量,这就是我让它工作的方式。
解决方案
如果您实际使用下面的命令,那么它预计不会工作,因为参数调用VERSION_APP
docker build --build-arg myVar=something
所以命令应该是
docker build --build-arg VERSION_APP=something
在 Dockerfile 中,%VERSION_APP%
您可能还需要使用 ENV,如下所示:
ARG VERSION_APP
ENV VERSION_APP ${VERSION_APP}
推荐阅读
- php - Laravel 6 从 Laravel 4.2 解密旧的加密链接
- html - 带有标题的 CSS 砌体网格?
- javascript - 如何关闭调试模式?我试图阻止代码执行两次每次我运行它
- sql - 当有多个管理时,如何获得每个人的最高测试分数?
- uicollectionviewcell - UICollectionViewCell 自定义子视图没有获得焦点
- google-cloud-dataflow - 使用数据流摄取 csv 文件列表的最佳方法
- python - 设置多线程 python 3
- sharepoint - Yammer 嵌入式停止在经典 SharePoint 中工作
- html - 如何在不删除另一侧的信使聊天图标的情况下添加固定在索引页面左下角的小部件?
- r - 使用 !is.na() 过滤数据。替代 !is na?