Windows docker-compose не работает args - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь использовать аргументы в файле создания докера.

Файл docker-compose:

version: '3'

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

Dockerfile:

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?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Я решил эту проблему, изменив Dockerfile следующим образом:

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%
0 голосов
/ 26 июня 2018

Вы не можете использовать ARG в ENTRYPOINT (по крайней мере, не напрямую). См. Как передать значение ARG в ENTRYPOINT? :

И ARG, и ENV не раскрываются в ENTRYPOINT или CMD. (https://docs.docker.com/engine/reference/builder/#environment-replacement) Однако, поскольку ENV передаются как часть среды, они доступны во время выполнения, поэтому оболочка может их расширить. (Это означает, что вы не можете использовать форму массива ENTRYPOINT или CMD. ) * +1010 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...