账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    fpm的dockerfile build问题
    24
    0

    下面是我的dockerfile 文件

    FROM php:7.1-fpm
    
    RUN apt-get update -y \
        && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev zlib1g-dev libcurl3 libwebp-dev zlib1g \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/ --with-png-dir=/usr/include \
        && docker-php-ext-install -j$(nproc) gd \
        ##
        && apt-get install -y libicu-dev \
        && docker-php-ext-install -j$(nproc) intl \
        ##
        && apt-get install -y libbz2-dev \
        && docker-php-ext-install bz2 \
        ##
        && apt-get install -y libxml2-dev \
        && apt-get install -y libxslt-dev \
        && docker-php-ext-install soap \
        && docker-php-ext-install xsl \
        && docker-php-ext-install xmlrpc \
        && docker-php-ext-install wddx \
        ##
        && docker-php-ext-install zip \
        && docker-php-ext-install pcntl \
        && docker-php-ext-install opcache \
        && docker-php-ext-install pdo \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install mysqli \
        && docker-php-ext-install mbstring \
        && docker-php-ext-install sockets \
        ##
        && pecl install redis-3.1.3 \
        && docker-php-ext-enable --ini-name pecl.ini redis  \
        ##
        && cd /tmp \
        && curl -L -s -o cphalcon.tar.gz https://github.com/phalcon/cphalcon/archive/v3.4.0.tar.gz \
        && tar xzvf cphalcon.tar.gz \
        && cd /tmp/cphalcon-3.4.0/build \
        && ./install \
        && echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini \
        ##
        && cd /tmp \
        && curl -L -s -o swoole.tar.gz https://github.com/swoole/swoole-src/archive/v2.1.0.tar.gz \
        && tar xzvf swoole.tar.gz \
        && cd /tmp/swoole-src-2.1.0 \
        && phpize \
        && ./configure \
        && make && make install \
        && echo "extension=swoole.so" > /usr/local/etc/php/conf.d/swoole.ini \
        ##
        && cd /tmp \
        && rm -rf cphalcon* \
        && rm -rf swoole* \
        && rm -rf package* 
    
    EXPOSE 9000
    CMD ["php-fpm"]
    

    这样子build是没有问题的,但是因为里面有apt-get update 所以非常慢,因此google了下,说是用国内的源即可 然后变更为如下:

    FROM php:7.1-fpm
    
    COPY ./sources.list .
    
    RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && mv sources.list /etc/apt/ && apt-get update -y \
        && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev zlib1g-dev libcurl3 libwebp-dev zlib1g \
        ......

    sources.list 文件内容如下:

    deb http://mirrors.163.com/debian/ jessie main non-free contrib
    deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
    deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
    deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
    deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

    如果这样子build的话,就会报错:

    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     libfreetype6-dev : Depends: zlib1g-dev but it is not going to be installed or
                                 libz-dev
     libpng12-dev : Depends: zlib1g-dev but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.

    我在想是这个163的源有问题么?但是不应该啊,

    求助下大家,这个问题怎么解决?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 滚出我的世界 普通会员 1楼

      在使用fpm的Dockerfile构建应用程序时,可能会遇到一些问题。这可能是由于以下原因:

      1. Dockerfile中的环境变量设置错误:请确保你在Dockerfile中设置了所有必要的环境变量。例如,如果你正在使用npm作为依赖管理工具,你需要在Dockerfile中添加以下行:

      RUN npm install

      1. Dockerfile中的镜像引用错误:请确保你在Dockerfile中正确引用了你的镜像。例如,如果你正在使用ubuntu作为镜像,你需要在Dockerfile中添加以下行:

      FROM ubuntu:latest

      1. Dockerfile中的RUN命令执行失败:请确保你的RUN命令能够成功执行。例如,如果你正在运行一些可能会抛出错误的命令,你可能需要添加一些错误处理代码。

      2. Dockerfile中的Dockerfile路径错误:请确保你在Dockerfile中正确设置了Dockerfile的路径。例如,如果你正在使用官方的Dockerfile模板,你需要在Dockerfile中添加以下行:

      FROM official/centos:7

      1. Dockerfile中的镜像仓库路径错误:请确保你在Dockerfile中正确设置了镜像仓库的路径。例如,如果你正在使用阿里云的Docker镜像仓库,你需要在Dockerfile中添加以下行:

      FROM aliyuncs/ubuntu:latest

      如果你遇到了问题,建议你检查你的Dockerfile,确保所有的设置都是正确的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部