构建php时,Laravel + Docker错误139

时间:2018-03-20 15:46:45

标签: php laravel docker docker-compose

帮助所有人。

我对Docker有点小问题。 我尝试使用Laravel为我的项目创建一个基本的docker-composer.yml。

所以这是我的docker-compose.yml,它位于我项目的根目录中:



version: '2'
services:
    php:
        container_name: php
        build:
            context: ./
            dockerfile: docker/app.docker
        volumes:
            - ./:/var/www
        links:
            - mysql
            - redis
            - cache
        environment:
            - "DB_PORT=3306"
            - "DB_HOST=mysql"
            - "REDIS_PORT=6379"
            - "REDIS_HOST=redis"
    nginx:
        container_name: nginx
        build:
            context: ./
            dockerfile: docker/web.docker
        volumes:
            - ./:/var/www
        ports:
            - "80:80"
            - "443:443"
            - "9000:9000"
        links:
            - php
    mysql:
        container_name: mysql
        image: mysql:5.7.18
        environment:
            - "MYSQL_ROOT_PASSWORD=secret"
            - "MYSQL_DATABASE=docker"
        ports:
            - "3306:3306"
    redis:
        container_name: redis
        image: redis:3.0
        ports:
            - "6379:6379"
    cache:
        container_name: memcached
        image: memcached:alpine
        ports:
            - "11211:11211"




正如您所看到的,我尝试安装几个容器:PHP,Nginx,MySql,Redis和Memcached。

现在这是我的PHP容器的docker文件:



FROM php:7.0-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd




这是我在docker网站上找到的代码。

但是docker-compose up命令在执行配置文件时启动并崩溃。

返回

Step 1/2 : FROM php:7.0-fpm
 ---> e04605d12f83
Step 2/2 : RUN apt-get update && apt-get install -y         libfreetype6-dev         libjpeg62-turbo-dev         libmcrypt-dev         libpng-dev     && docker-php-ext-install -j$(nproc) iconv mcrypt     && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/     && docker-php-ext-install -j$(nproc) gd
 ---> Running in fd19753fb969
ERROR: Service 'php' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y         libfreetype6-dev         libjpeg62-turbo-dev         libmcrypt-dev         libpng-dev     && docker-php-ext-install -j$(nproc) iconv mcrypt     && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/     && docker-php-ext-install -j$(nproc) gd' 
returned a non-zero code: 139

有人有这种错误吗?我已经尝试使用PHP 7.1 fpm,触发了相同的错误。

我不知道出了什么问题。

不要犹豫,问我代码的其他部分。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我尝试了你的PHP配置,在编译图像时没有给我任何问题

作为替代方案: Try:

FROM php:7-fpm-alpine
RUN apk add --no-cache freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev && \
  docker-php-ext-configure gd \
    --with-gd \
    --with-freetype-dir=/usr/include/ \
    --with-png-dir=/usr/include/ \
    --with-jpeg-dir=/usr/include/ && \
  NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \
  docker-php-ext-install -j${NPROC} gd && \
  apk del --no-cache freetype-dev libpng-dev libjpeg-turbo-dev