Bash на альпийском Linux - PullRequest
       7

Bash на альпийском Linux

1 голос
/ 23 апреля 2019

Я не могу получить оболочку bash в альпийский контейнер.

Я начинаю с этого контейнера Alpine: gitlab/gitlab-runner:alpine

Я добавляю оболочку bash и другие конфиги в этот dockerfile:

from gitlab/gitlab-runner:alpine

ENV http_proxy=<corporate_proxy>
ENV https_proxy=<corporate_proxy>

RUN apk add vim wget curl nmap lsof bash bash-completion which

CMD ["/bin/bash"]
RUN ls -l /bin # THIS WORKS, I CAN SEE 'BASH' SHOW UP WITH 755 OWNED BY ROOT
RUN which bash # THIS ALSO WORKS
RUN /bin/bash -c "echo hi" # YES, THIS WORKS TOO

Однако при порождении контейнера использовать оболочку bash через: docker run -idt <image_name> /bin/bash, контейнер не запускается с FATAL: Command /bin/bash not found.

Обратите внимание, что эти другие параметры также не работают при порождении контейнера: ash, sh, /bin/ash, /bin/sh, etc

запуск контейнера с --user root также не работает.

Ответы [ 3 ]

3 голосов
/ 23 апреля 2019

Точкой входа является скрипт GitLab Runner.Измените его на bash, чтобы получить доступ к оболочке:

$ docker run -it --entrypoint /bin/bash <image_name>
0 голосов
/ 23 апреля 2019

Оказывается, что-то напуганное было установлено в точке входа контейнера. Мне нужно помнить, чтобы переопределить точку входа при порождении нового контейнера через docker run.

Добавление этой строки в Dockerfile решило проблему:

ENTRYPOINT: []
0 голосов
/ 23 апреля 2019

1 - проверьте, полностью ли загружен контейнер:

docker ps

, поэтому после входа в оболочку bash введите:

docker exec -it <<container_name>> bash
...