【问题标题】:Why does Windows Docker container not wait for exe to finish installing?为什么 Windows Docker 容器不等待 exe 完成安装?
【发布时间】:2021-07-27 02:29:30
【问题描述】:

我正在编写一个 Dockerfile 来在 Windows Server 2019 上安装一个 exe,然后运行安装的程序。

在 Dockerfile 中,我调用 ENTRYPOINT ["test.exe", "-f", "params.txt"] 后跟 WORKDIR "C:\Program Files\TestInstall\bin",但由于尚未创建 bin 文件夹,WORKDIR 无法执行。我已经通过在命令之间运行dir 来检查TestInstall 目录中的内容来确认这一点,并且每次都尚未创建bin 文件夹。但是,如果我在容器退出后打开一个 shell 会话,bin 文件夹就会在那里。

有没有办法让它在运行WORKDIR之前等待exe完成安装,还是取决于exe如何执行安装?

【问题讨论】:

    标签: docker dockerfile docker-for-windows


    【解决方案1】:

    ENTRYPOINT 指令用于指定容器启动时将执行的命令。这意味着当您使用workdirbin 目录将不存在,因为ENTRYPOINT ["test.exe", "-f", "params.txt"] 尚未执行。

    您可以看到它好像 ENTRYPOINT 指令是将在您的脚本中运行的最后一行(这可能是它通常放在 Dockerfile 末尾的原因。)

    RUN 指令可以用来做你想做的事。

    【讨论】:

    • 非常感谢!这正是我正在寻找的解决方案。其实之前我也试过RUN指令,但是我想我之前没有正确格式化参数,所以导致它失败了。
    • @Matt 乐于助人^^
    猜你喜欢
    • 2020-06-08
    • 2019-12-18
    • 2012-12-13
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多