Skip to content

Commit b005940

Browse files
author
Jeremy Price
committed
[Docker] Don't cache composer deps, remove any .git repos that creep in
There is a failure mode in composer where if it has a connection trying to get a dependency tarball from the github API, it will fall-back to downloading the entire repo for the dependency and use that... and it will cache it outside of vendor/, using a whopping 1.5G of space that full 1.5G is _then_ copied into vendor/ ``` 98M league 100M tecnickcom 133M laravel 323M sebastian 681M aws ``` for a total of a 1.8G vendor/ directory vs the trimmed-down version with a 552M vendor/ directory ``` 53M league 30M tecnickcom 31M laravel 70M sebastian 241M aws ``` This is still a far cry from the proper 150M version when everything works as it should, but it's still a vast improvement ``` 3.2M league 14M laravel 30M tecnickcom 260K sebastian 52M aws ``` Ideally this never happens, but it'd be great tp avoid the bloat if/when it does.. To wit: Our ARM/Ubuntu Docker images are currently bloated because of this issue due builds happening on an emulated ARM environment, and the resultant performance penalties causing composer issues All that to say, this change sets OMPOSER_CACHE_DIR to /dev/null to avoid the caching, and then removes vendor/*/*/.git to remove that needless bloat if it occurs. It's a no-op in general practice.
1 parent 1b7486c commit b005940

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
110110

111111
# Get dependencies
112112
USER docker
113-
RUN composer install --no-dev --working-dir=/var/www/html
113+
RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html && rm -rf /var/www/html/vendor/*/*/.git
114114
USER root
115115

116116
############### APPLICATION INSTALL/INIT #################

0 commit comments

Comments
 (0)