См. этот пост SO , он содержит несколько обходных путей для достижения желаемого.
ENV рассматривает значение как простую текстовую строку.
ОБНОВЛЕНИЕ:
В соответствии с ответами и комментариями здесь :
1) RUN $profile
, который покажет вам местоположение профиля среды. Узнайте больше об этом файле.
2) Попробуйте RUN $env.MY_VAR = [Convert]::ToBase64String([system.Text.Encoding]::UTF8.GetBytes($MY_ARG)) >> $profile
или другим способом добавить команду в файл. Я недостаточно знаком с powershell, поэтому помните, что вы, возможно, захотите слегка исправить команду. (Прокомментируйте правильную команду, и я исправлю ее для следующих зрителей.)
3) Попробуйте прочитать MY_VAR в контейнере. Если все правильно, то Hoooray !, еще раз проверьте в профиле $, что вы действительно получаете правильную строку установки переменной.