запуск клиента git или ssh в докере от имени пользователя :Пользователь для uid не существует

Вот простой скрипт Python 3, который добавляет 10 к каждому числу.

#!/usr/bin/env python3

import fileinput
import re

rx = re.compile(r'(\d+)')
for line in fileinput.input():
    parts = rx.split(line.rstrip('\n'))
    if len(parts) > 1:
        for i in range(1, len(parts), 2):
            parts[i] = str(int(parts[i]) + 10)
        line = "".join(parts)
    print(line)

Предполагается, что каждая строка начинается с числа, отличного от -. Нетрудно измениться, чтобы быть немного более гибким, но на данный момент это, похоже, решило задачу.

Чтобы вызвать это из сценария Bash, просто сохраните его в файле и chmod a+x filename.py. Итак, если вы сохранили его в ./splitnum.py, это команда для его запуска, как только вы убедитесь, что у него есть разрешение на выполнение.

Вот лайнер Perl one -:

perl -lne '@s = split(/(\d+)/); for($i=1;$i<=$#s;$i+=2) { $s[$i] += 10 }; print(join("", @s))'
5
11.06.2019, 21:25
1 ответ

Использование этой функции bash:

function docker--run() {
    if [[ -z $1 ]]; then
        echo 'docker--run [-v $PWD:/src] IMAGE'
        return 1
    fi
    # useradd for ubuntu (which has adduser as well)
    # adduser for alpine, others not tested
    docker run -it --rm --entrypoint sh "$@" -c "
          [ -x /usr/sbin/useradd ] && useradd -m -u $(id -u) u1 -s /bin/sh || adduser -D -u $(id -u) u1 -s /bin/sh;
          exec su - u1"
}

Вы можете запустить его как

docker--run -v /home/$USER:/home/u1 kiesel/debian-ssh-client

Он создаст пользователя u1с вашим идентификатором пользователя в контейнере докера, а затем переключится на этого пользователя.

2
05.10.2020, 20:13

Теги

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