帮助所有人。
我对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,触发了相同的错误。
我不知道出了什么问题。
不要犹豫,问我代码的其他部分。
感谢您的帮助。
答案 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