Problem with .gitignore
Your core directory is included in your .gitignore. I don't know which strategy you want follow but, like you have vendor, modules/contrib, themes/contrib, etc, you should launch composer install to download your core and contrib modules/themes in your workflow to complete your installation (your composer.lock should be commit).

If you prefer commit your modules, themes, profiles, libraries, core, etc., because some parts of your content are not managed by composer or because you don't want risk a bug of network during the build, you should remove these directories from your .gitignore and add them in your git repository.