Если у вас есть только одно задание, вы можете использовать следующее свойство, чтобы запустить только последнюю сборку
disableConcurrentBuilds()
Вы также можете использовать шаги блокировки / этапа, чтобы заблокировать этап
https://jenkins.io/blog/2016/10/16/stage-lock-milestone/
Наконец, вы можете динамически установить для порта значение, отличное от 8081
с помощью команды bash и python:
PORT=$(python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()')
тогда вы должны передать переменную PORT вашей команде docker, чтобы отобразить внутренний порт на новый внешний, который мы получили из переменной