Windows镜像如何使用Dockerfile的ARG指令

2023-12-23

我想在 dockerfile 中传递一个参数来构建我的 docker 映像。我在其他帖子和 Docker 手册中看到了如何执行此操作,但在我的情况下不起作用。 这是我使用我的论点的代码摘录:

ARG FirefoxVersion
RUN powershell -Command iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
RUN choco install -y firefox --version $FirefoxVersion --ignore-checksums

我在 powershell Prompt 中使用此命令构建图像:

docker build -t myimage --build-arg FirefoxVersion=61.0.1 .

最后我有这个错误:

 '$FirefoxVersion' is not a valid version string.
 Parameter name: version
 The command 'cmd /S /C choco install -y firefox --version $FirefoxVersion  -- ignore-checksums' returned a non-zero code: 1

有人知道我的代码有什么问题吗? 谢谢。


正如@matt9建议的

Use $env:FirefoxVersion在 powershell 中

Use %FirefoxVersion%在cmd.exe中

FROM microsoft/windowsservercore:ltsc2016
ARG FirefoxVersion
#if using powershell
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
RUN Write-Host Powershell: $env:FirefoxVersion
#if using CMD
SHELL ["cmd", "/S", "/C"]
RUN echo cmd.exe: %FirefoxVersion%

Build: docker build -t myimage --build-arg FirefoxVersion=61.0.1 .

Result

Powershell: 61.0.1
cmd.exe: 61.0.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows镜像如何使用Dockerfile的ARG指令 的相关文章

  • 在ubuntu内核中启用cgroup cpu实时运行时

    我正在尝试在 Ubuntu 18 04 上运行的 docker 容器中使用实时调度 我已经按照给定的方法安装了实时内核here https stackoverflow com questions 51669724 install rt li
  • 通过 VPN 容器路由 Docker 容器流量

    我在我的上安装了几个容器洛克Pro64 运行 openmediavault 的 ARMv8 处理器 rev 2 v8 版本 4 1 27 1 Arrakis 一切都运转良好 我使用的容器包括 Transmission Jellyfin Ra
  • Docker nginx 代理到主机

    简短的介绍 Nginx 运行在 docker 上 如何配置 nginx 以便将调用转发到主机 详细描述 我们有一个 Web 应用程序与几个后端通信 假设为rest1 rest2 和rest3 我们负责rest1 让我们考虑一下我开始rest
  • 无法通过 macvlan 网络从主机访问 docker 容器

    在我的 Linux 网络中 我无法通过专用 macvlan 网络从运行它们的主机访问我的 docker 容器 到此 macvlan 网络的所有其他连接都正常 所以基本上设置是 DOCKER1 eth0 172 0 0 1 default e
  • Docker exec linux 终端创建别名

    我有一个正在运行且独立的容器 我想在附加到该容器之前创建一个命令别名 当我连接到容器并输入 alias bar foo 创建别名 并可以通过以下方式检查 alias command 但如果我想做同样的事情码头执行者命令即这样 docker
  • 在未安装 docker 的情况下构建 docker 镜像

    是否可以在不安装 docker 的情况下构建镜像 在我的项目的 Maven 构建中 我想生成 docker 映像 但我不想强迫其他人在他们的机器上安装 docker 我可以想到一些安装了 docker 的虚拟框映像 但这是一种繁重的解决方案
  • Heroku 码头部署

    我正在关注这篇文章https devcenter heroku com articles container registry and runtime https devcenter heroku com articles containe
  • Docker 网络 - nginx:[emerg] 在上游找不到主机

    我最近开始迁移到 Docker 1 9 和 Docker Compose 1 5 的网络功能来取代使用链接 到目前为止 通过链接 nginx 通过 docker compose 连接到位于一组中不同服务器中的 php5 fpm fastcg
  • Docker 多个相同端口问题

    我目前正在解决方案中开发两个相互关联的 ASP NET Core WebAPI 服务 Service1 和 Service2 两者都有 docker 文件并暴露端口 80 Service1是一个独立的服务 需要从Service2调用 我已经
  • 无法连接到docker中的elasticsearch容器

    我正在尝试使用 docker 的官方 elasticsearch 镜像 我遵循了本指南 https www elastic co guide en elasticsearch reference current docker html但是当
  • Docker - 如何通过 API 将输入发送到程序

    我一直在使用 Docker 的远程 API 创建一个容器 在其中运行一个 Python 程序 附加到该容器并将写入 stdout 的输出流式传输到网络 现在 我希望我的 Python 程序接受来自 stdin 的用户输入 例如 import
  • 使用前端 Dockerfile 无法解决

    我对 Docker 还很陌生 正在尝试使用纯 HTML 构建 Docker 映像 但我收到此错误消息 无法使用前端 dockerfile v0 解决 无法读取 dockerfile 打开 var lib docker tmp buildki
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无
  • kubectl:在 WSL 终端中找不到

    我按照以下说明在 Windows10 上安装了 WSL2 https learn microsoft com en us windows wsl install win10 https learn microsoft com en us w
  • docker登录 - 存储凭据时出错 - 写入权限错误

    我正在运行一个docker login命令作为 Bamboo 构建作业的一部分 命令文本通过以下方式获得aws ecr get login调用并在子 shell 中执行 该命令失败并显示Error saving credentials er
  • Spring Boot 和 Kafka,Producer 抛出 key='null' 异常

    我正在尝试使用Spring Boot with Kafka and ZooKeeper with Docker docker compose yml version 2 services zookeeper image wurstmeist
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 导入错误:没有名为 google.auth 的模块

    当我尝试导入时firebase admin in python 2 7我收到错误 导入错误 没有名为 google auth 的模块 这是Docker文件 https github com ammaratef45 Attendance bl
  • Docker 运行与创建

    有什么区别docker run and docker create命令 我通常使用run但有时在文档中我看到create 码头工人的 help tells create Create a new container run Run a co

随机推荐