Мне нужно использовать bash
в сценариях конвейера CI / CD, поэтому я пытаюсь использовать этот простой образ:
FROM alpine:3.4
RUN apk update -q && apk add --no-cache bash -q
SHELL ["/bin/bash", "--login", "-c"]
RUN echo $0
То, что я получаю в своем терминале, таково:
$ docker build .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM alpine:3.4
---> b7c5ffe56db7
Step 2/4 : RUN apk update -q && apk add --no-cache bash -q
---> Using cache
---> 18b729da453c
Step 3/4 : SHELL ["/bin/bash", "--login", "-c"]
---> Using cache
---> 03ca0df4a543
Step 4/4 : RUN echo $0
---> Running in a65419dafc4b
/bin/bash
Removing intermediate container a65419dafc4b
---> 2963f9e0e563
Successfully built 2963f9e0e563
После этого я запускаю этот контейнер и получаю:
$ docker run -it 2963f9e0e563
/ $ echo $0
/bin/sh
/ $
(он запускается как root, но я изменил "#" на "$" для этого поста)
Почему он использует sh
вместо bash
?