Условный ARG в Dockerfile - PullRequest
       8

Условный ARG в Dockerfile

0 голосов
/ 16 октября 2018

У меня есть Dockerfile, и я хочу сделать разные вещи на основе аргумента сборки, чтобы определить isDev или нет.

В Dockerfile у меня есть:

ARG isDev
RUN echo "what is in isDev ? $isDev"
RUN if ["${isDev}" = "1"] ; 
     then ..... do dev stuff .... ; 
     else .... do production stuff ; 
    fi

Я строюс моим --build-arg isDev = 1

Step 14/25 : ARG isDev
 ---> Running in 0a3de5fea466
Removing intermediate container 0a3de5fea466
 ---> a6d79a08a97e
Step 15/25 : RUN echo "what is in isDev ? $isDev"
 ---> Running in 92235e8b0c6a
what is in isDev ? 1
Removing intermediate container 92235e8b0c6a
 ---> a7b064687480
Step 16/25 : RUN if ["${isDev}" = "1"] ; then ... do dev stuff ... ; else  ... do production stuff ... ; fi
 ---> Running in bbe6a047705a
[91m/bin/sh: 1: [1: not found

Что я делаю не так?

1 Ответ

0 голосов
/ 16 октября 2018

Вам не понравится этот ответ, вам не хватает пробела после [.Вам понадобится еще один пробел перед закрывающей скобкой, и вам нужно будет избежать перевода строки.По крайней мере, это то, что я вижу на первый взгляд.

ARG isDev
RUN echo "what is in isDev ? $isDev"
RUN if [ "${isDev}" = "1" ] ; \
     then ..... do dev stuff .... ; \
     else .... do production stuff ; \
    fi
...