Переменные среды не расширяются в JAVA_TOOL_OPTIONS

Используйте break; для выхода из первого цикла:

if (s.Contains("mp4:production/CATCHUP/"))
{
   RemoveEXELog();
   Process p = new Process();
   p.StartInfo.WorkingDirectory = "dump";
   p.StartInfo.FileName = "test.exe"; 
   p.StartInfo.Arguments = s; 
   p.Start();
   break;
}

Если вы хотите также избежать второго цикла, вам может понадобиться использовать флаг и проверить защиту от цикла:

        boolean breakFlag = false;
        while (!breakFlag)
        {
            Thread.Sleep(5000);
            if (!System.IO.File.Exists("Command.bat")) continue;
            using (System.IO.StreamReader sr = System.IO.File.OpenText("Command.bat"))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    if (s.Contains("mp4:production/CATCHUP/"))
                    {

                        RemoveEXELog();

                        Process p = new Process();
                        p.StartInfo.WorkingDirectory = "dump";
                        p.StartInfo.FileName = "test.exe"; 
                        p.StartInfo.Arguments = s; 
                        p.Start();

                        breakFlag = true;
                        break;
                    }
                }
            }

Или, если вы хотите полностью выйти из функции изнутри вложенного цикла, поставьте вместо break; значение return;.

Но на самом деле это не считается лучшей практикой. Вы должны найти способ добавить в логику while необходимую логическую логику.

0
задан goutham 16 January 2019 в 15:25
поделиться

2 ответа

В докер-файлах все директивы требуют определенного кодового слова. Присвоение переменной окружения ничем не отличается от этого и требует кодового слова ENV (см. здесь ).

Используя это, вы должны получить отрывок из вашего dockerfile

ENV AGENT_PATH=/agent/agent.jar
0
ответ дан Hanfbaron 16 January 2019 в 15:25
поделиться

Это будет зависеть от шага Docker. Если вы используете шаг RUN , обработка переменных не поддерживается:

В отличие от формы оболочки, форма exec не вызывает командную оболочку. Это означает, что обычная обработка оболочки не происходит. Например, RUN [ "echo", "$HOME" ] не будет выполнять подстановку переменных в $HOME. Если вы хотите обработать оболочку, то либо используйте форму оболочки, либо выполните оболочку напрямую, например: RUN [ "sh", "-c", "echo $HOME" ]. При использовании формы exec и непосредственного запуска оболочки, как в случае с формой оболочки, именно оболочка выполняет расширение переменной среды, а не docker.

0
ответ дан Karol Dowbecki 16 January 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: