Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.4K
Vistas
Cómo instalar PHP composer dentro de un contenedor docker

Trato de encontrar una forma de crear un entorno de desarrollo usando docker y laravel.

Tengo el siguiente archivo acoplable:

 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 requiere que composer llame a composer dump-autoload cuando trabaje con la migración de la base de datos. Por lo tanto, necesito un compositor dentro del contenedor acoplable.

Lo intenté:

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

Pero cuando llamo

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

Lanza el siguiente error:

 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"

Estaría más que feliz de recibir consejos sobre cómo puedo agregar el compositor a la RUTA dentro de mi dockerfile o qué más puedo hacer para superar este error.

Gracias por su apoyo. Además: este es el repositorio de gitub si necesita ver el archivo docker-compose.yml o cualquier otra cosa.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En Dockerfile:

 COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
over 4 years ago · Santiago Trujillo Denunciar

0

Puedo instalar el compositor agregando esta línea en mi archivo acoplable de prueba:

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

Aquí está el archivo docker:

 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

Funciona para mí, para probar si el compositor está instalado, accedo a mi contenedor bash y ejecuto:

 composer --version Composer version 1.6.5 2018-05-04 11:44:59
over 4 years ago · Santiago Trujillo Denunciar

0

Así es como lo hago con Laravel 8.4 en 2021 para implementarlo en CloudRun en Google Cloud:

Dockerfile

 #Get Composer FROM composer:2.0 as vendor WORKDIR /app COPY database/ database/ COPY composer.json composer.json COPY composer.lock composer.lock RUN composer install \ --no-interaction \ --no-plugins \ --no-scripts \ --no-dev \ --prefer-dist COPY . . RUN composer dump-autoload

// algunos pasos personalizados más como

 FROM node:14.9 as frontend ... FROM php:7.4-fpm ...

// Copiar dependencias de Composer

 # Copy Composer dependencies COPY --from=vendor app/vendor/ ./vendor/ COPY . .

// Algunos pasos personalizados más

 ...

Fin de mi Dockerfile para iniciar la aplicación con caché optimizada borrada

 # Run Laravel commands RUN php artisan optimize:clear CMD php artisan serve --host=0.0.0.0 --port=8080 EXPOSE 8080
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda