docker alpine Псевдонимы команд для терминалов alias (shell/bash)

Разберемся как создавать псевдонимы команд в alpine-контейнере, просто взять и написать в докерфайле:

RUN echo 'alias cept="./vendor/bin/codecept"' >> ~/.bashrc

-- по-умолчанию здесь не получится, дело в том, что:

  • 1) alpine linux не использует bash по умолчанию, а использует shell
  • 2) дело в том, как именно вы запускаете командную оболочку после старта контейнера

Действуем так:

  1. В Dockerfile будем писать в ~/.profile, например:
    RUN echo 'alias cept="./vendor/bin/codecept"' >> ~/.profile
  2. Далее собираем и запускаем наш контейнер
  3. Для подключения, используем не просто sh как команду с флагом -l (long):
    docker exec -it имяконтейнера sh -l

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

Варианты создания псевдонимов:

  1. Можно копировать файл целиком, напр. тот же .bashrc из папки проекта на локальной машине в контейнер
  2. Можно писать в .bashrc контейнера прямо в Dockerfile, например:
    RUN echo 'alias cept="./vendor/bin/codecept"' >> ~/.bashrc

    (псевдоним для кодэсэпшена)

Возможные проблемы

Возникает проблема, что сам по себе bashrc не прочитывается (т.е. для него не выполняется source при старте контейнера) -- см. причину проблемы в тексте основного сообщения выше

_____________
матфак вгу и остальная классика =)