То, что вы видите, является ожидаемым поведением.
Если вы хотите, чтобы папка вендора также была заполнена и была доступна на хосте, то вам нужно запустить установку ПОСЛЕ сопоставления, а не наоборот.
Эта команда:
curl -s https://getcomposer.org/installer | php && \
echo "{}" > composer.json && \
php composer.phar require slim/slim "^3.0" && \
chown -R www-data. .
должна стать вашей ENTRYPOINT или CMD, чтобы она запускалась при запуске контейнера (а не при его создании).
Я бы предложилпоместите эти команды в скрипт установки и запустите это.Это выглядело бы чище и легче для понимания.
Надеюсь, это поможет, но если вам нужна дополнительная информация, просто дайте мне знать.