首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows停靠-合成不工作的args

windows停靠-合成不工作的args
EN

Stack Overflow用户
提问于 2018-06-26 09:56:04
回答 2查看 709关注 0票数 1

我试着用args在一个码头撰写文件。

停靠-撰写文件:

代码语言:javascript
复制
version: '3'

services:
  service1:
    image: test
    restart: always
    build:
      context: C:/ProgramData/
      dockerfile: Dockerfile
      args:
        entry: 1
    volumes:
      - C:/ProgramData/test 

Dockerfile:

代码语言:javascript
复制
FROM microsoft/dotnet-framework:3.5
ARG entry
WORKDIR C:\\test
ADD ["/bin/x86/Release/","C:/test/"] 
ENTRYPOINT ["C:\\test\\file.exe",  ${entry}]

我不知道docker文件中的语法到底是如何工作的。我要怎么把arg放进ENTRYPOINT

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-27 06:25:44

我通过如下更改Dockerfile来解决这个问题:

代码语言:javascript
复制
FROM microsoft/dotnet-framework:3.5

ARG ENTRY
ENV my_env=$ENTRY

#RUN echo %ENTRY%
#RUN echo %my_env%

WORKDIR C:\\test
ADD ["/bin/x86/Release/","C:/test/"]

ENTRYPOINT C:/test/file.exe %my_env%
票数 1
EN

Stack Overflow用户

发布于 2018-06-26 12:31:36

您不能在ARG中使用ENTRYPOINT (至少不能直接使用)。请参阅How to pass ARG value to ENTRYPOINT?

ARG和ENV均未在切入点或CMD中扩张。(https://docs.docker.com/engine/reference/builder/#environment-replacement)但是,因为ENVs是作为环境的一部分传入的,所以它们在运行时是可用的,所以shell可以扩展它们。(这意味着不能使用ENTRYPOINT或CMD的数组形式。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51039987

复制
相关文章

相似问题

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