@mkone112
Начинающий питонист.

Возможно ли использовать возможности shell form в exec form?

Dockefile
FROM debian:bullseye

ENV  RED='\033[0;31m' COLOR_END='\033[0m'

# успешно выводит сообщение в stdout красным цветом
RUN echo "${RED}message${COLOR_END}"

# не пишет в stdout и не подставляет переменные
RUN ["/bin/sh", "-c", "echo", "${RED}message${COLOR_END}"]

Команда билда:

DOCKER_BUILDKIT=1 && docker build --progress=plain .
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
У вас всё что после -c должно быть одним аргументом.

FROM debian:bullseye

ENV  RED='\033[0;31m' COLOR_END='\033[0m'

# успешно выводит сообщение в stdout красным цветом
RUN echo "${RED}message${COLOR_END}"

# тоже успешно выводит сообщение
RUN ["/bin/sh", "-c", "echo ${RED}message${COLOR_END}"]


Вот (оба message красные):
$ docker build --no-cache .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM debian:bullseye
 ---> dd8bae8d259f
Step 2/4 : ENV  RED='\033[0;31m' COLOR_END='\033[0m'
 ---> Running in fd8a21d2af82
Removing intermediate container fd8a21d2af82
 ---> 19553478f260
Step 3/4 : RUN echo "${RED}message${COLOR_END}"
 ---> Running in 520badc402cd
message
Removing intermediate container 520badc402cd
 ---> b2f788a04581
Step 4/4 : RUN ["/bin/sh", "-c", "echo ${RED}message${COLOR_END}"]
 ---> Running in 52086dae131a
message
Removing intermediate container 52086dae131a
 ---> 0034957876f3
Successfully built 0034957876f3


6307aaf0a5795274335922.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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