かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Docker PHP composer を使えるようにしたい。

旋回までのあらすじ

Docker で作った PHP 環境で composer を使おうとしたら入ってなかったので使えるようにしたメモ

docker-compose.yml

version: '3'
services:
  api:
    build:
      context: ./php
      dockerfile: Dockerfile
    volumes:
      - ./api:/var/www
    depends_on:
      - db

Dockerfile に compose のイメージを取ってくる指定を追加する

(optimal) create your own build image and install Composer inside it.
Note: Docker 17.05 introduced multi-stage builds, simplifying this enormously:

COPY --from=composer /usr/bin/composer /usr/bin/composer
cf. https://hub.docker.com/_/composer:

./php/Dockerfile

FROM php:7.4-fpm
RUN apt-get update
RUN apt-get install -y vim
RUN docker-php-ext-install pdo_mysql

COPY php.ini /usr/local/etc/php/
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

composer:latest の指定で最新版の composer イメージ使用する
※ docker が v17.05 以上である必要がある

docker-compose up --build で再ビルドして composer のコマンドが使えればOK

$ docker-compose exec api composer --version
Composer version 1.10.7 2020-06-03 10:03:56

api の部分は docker-compose.yml で指定したコンテナ名に適時変更してください  
導入簡単だった。
<完>


[参考]