web-dev-qa-db-ja.com

インストール方法PHP composer docker container内

Dockerとlaravelを使用して開発環境を作成する方法を考えています。

次のdockerfileがあります。

FROM php:7.1.3-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev \
    mysql-client libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql
&& chmod -R o+rw laravel-master/bootstrap laravel-master/storage

Laravelでは、composer=を呼び出して、データベースの移行を行うときにdump-autoloadを呼び出すcomposer。したがって、Docker内でcomposer=容器。

私は試した:

RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer

しかし、私が電話するとき

docker-compose up
docker-compose exec app composer dump-autoload

次のエラーがスローされます。

rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"composer\\\": executable file not found in $PATH\"\n"

Dockerfile内のPATHにcomposerを追加する方法、またはこのエラーを克服するために他にできることを教えてください。

ご協力ありがとうございました。また、 this は、docker-compose.ymlファイルなどを表示する必要がある場合のgitubリポジトリです。

7
Andre

私はインストールできますcomposer=テストdockerfileにこの行を追加:

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

これはdockerfile:です

FROM php:7.1.3-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev \
    mysql-client libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

composerがインストールされているかどうかをテストして、コンテナbashにアクセスして実行する:

composer --version
Composer version 1.6.5 2018-05-04 11:44:59
15
Brayan Caldera

Dockerfileで:

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
1
Moghreb

基本的に同じコマンドを実行しますが、違いはありますが、

--install-dir=/usr/local/bin

または、composer binファイルのパスを$ PATH変数に追加する必要があります。

export PATH=$PATH":/usr/bin"
1
mutas

composerファイルの実行可能ファイルを使用して作成します

RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer && chmod +x /usr/bin/composer 
1
Adnan Mumtaz