How do I prevent the CI from deleting a folder (Composer’s vendor directory) that’s not in the repo on every build?
docker-ci.yml one of the job runs
composer install, then does a login to a Docker Registry (GitLab’s Container Registry), builds a Docker Image (Dockerfile does a
COPY of content to new image), then pushes that Docker Image. So a new layer is added to that Image on every build. The problem is that the new layer is far too large even if I just change a small text file. I figured out the reason: every time the build runs it removes the
vendor folder that is created on
composer install. So any time
composer install is run it has to recreate the
vendor folder and install all the dependencies. Normally
composer install would skip the rebuild of dependency directory since I have a
composer.lock file and so the Docker Image layer would be the size of whatever I change and not the size of the vendor directory.
I can’t figure out how to prevent the build from removing the vendor directory.