diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2c5dc8cacb061cf40a80cd86c50574ad4b79ff8d..ad8315c9907be7c0ba3d6088168c6b1a0091ca4f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: composer
+image: php
 
 cache:
     paths:
@@ -7,9 +7,9 @@ cache:
 build:
     stage: build
     script:
-        - composer install
+        - "$CI_PROJECT_DIR/tools/composer install"
 
 test:
     stage: test
     script:
-        - composer test
+        - "$CI_PROJECT_DIR/tools/composer test"
diff --git a/.phive/phars.xml b/.phive/phars.xml
index 4f645de1722d2ad7dd4b7eb902be54aa013e8cba..23ef7979839a64dab54061e8fe2ff0ab129a8199 100644
--- a/.phive/phars.xml
+++ b/.phive/phars.xml
@@ -5,4 +5,5 @@
   <phar name="phpcs" version="^3.6.2" installed="3.6.2" location="./tools/phpcs" copy="true"/>
   <phar name="phpcbf" version="^3.6.2" installed="3.6.2" location="./tools/phpcbf" copy="true"/>
   <phar name="grumphp" version="^1.12.0" installed="1.12.0" location="./tools/grumphp" copy="true"/>
+  <phar name="composer" version="^2.3.4" installed="2.3.4" location="./tools/composer" copy="true"/>
 </phive>
diff --git a/tools/composer b/tools/composer
new file mode 100755
index 0000000000000000000000000000000000000000..70b521890693a622f509c08fc8f8e187fad1fdda
Binary files /dev/null and b/tools/composer differ