docker容器中扩展安装(PHP8)

这篇具有很好参考价值的文章主要介绍了docker容器中扩展安装(PHP8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker容器是轻量级虚拟化技术的一种实现,可以在一个宿主机上运行多个隔离的应用容器。
Docker镜像是个可执行的文件,它包含了运行一个特定应用程序所需的一切组件。从Docker Hub上下载的镜像可能会缺少某些特定的软件包或库文件,因此我们需要在镜像中安装必要的工具和软件包以满足应用程序的需要。通常情况下,我们可以在Docker容器中使用aptet宋安装需要的软件包,但是却发现Docker容器里没有apt-get这个命令,那么我们该怎么办呢?这是因为Docker容器的基础镜像通常是一个精简的操作系统,只包合运行应用程序所需的最基本组件,不包括完整的操作系统因此,我们需要找到适用于镜像的软件包管理器。

对于基于Alpine Linux的Docker境像,建议使用apk命今来安装需要的软件包
对于Ubuntu或Debian基础镜像,我们可以使用apt-get命令来安装

查看系统类型:uname -s  或者 cat  /etc/os-release

以安装PHP扩展xlswriter为例,分dockerfile和docker容器内部两种方式安装

一  在docker容器内部安装
1、设置docker镜像源
(Alpine Linux系统)
  在容器环境中输入以下命令:
  sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories  && apk update

2、安装扩展需要的环境
  apk add autoconf \
        gcc      \
        g++      \
        zlib-dev  \
        make

3、pecl工具安装
(1)apk一键安装
        apk add php-pear

(2)下载安装
        cd /bin/
        wget http://pear.php.net/go-pear.phar -O go-pear.php
        php go-pear.php

        ##回车默认安装

4、使用pecl安装xlswriter
  pecl install xlswriter
 (可能会会出现错误提示,但是不要紧xlswriter 的安装包已经下载下来了,路径在/tmp/pear/install/)

5、安装php8-dev(指定php8)
   apk add php8-dev

6、编译安装xlswriter
  cd  /tmp/pear/install/
  解压 tar -zxvf xlswriter.tgz
  cd xlswriter

  phpize && ./configure --with-php-config=/usr/bin/php-config8 --enable-reader

7、配置扩展文件
  cd /usr/lib/php8/modules/  查看xlswriter.so文件是否存在
  确认存在 cd /etc/php8/conf.d
  编辑扩展文件 vi xlswriter.ini
  extension = xlswriter.so
  运行 php -m |grep xlswriter 确认是否安装上

(Ubuntu或Debian系统)
1、在容器环境中输入以下命令:
  sed -i s@/archive.ubuntu.com/@/mirrors.ustc.edu.cn/@g /etc/apt/sources.list  && apt-get update

2、安装扩展需要的环境
  apt-get install  autoconf automake libtool php-xml

3、pecl工具安装
(1)apt-get一键安装
       apt-get install php-pear

(2)下载安装
        cd /bin/
        wget http://pear.php.net/go-pear.phar -O go-pear.php
        php go-pear.php

        ##回车默认安装

4、使用pecl安装xlswriter
  pecl install xlswriter
  路径在/tmp/pear/install

5、安装php8-dev
    apt-get install php8-dev

6、编译安装xlswriter
  cd  /tmp/pear/install/
  解压 tar -zxvf xlswriter.tgz
  cd xlswriter

  phpize && ./configure --with-php-config=/usr/bin/php-config8 --enable-reader

7、配置扩展文件
  cd /usr/lib/php8/modules/  查看xlswriter.so文件是否存在
  确认存在 cd /etc/php8/conf.d
  编辑扩展文件 vi xlswriter.ini
  extension = xlswriter.so
  运行 php -m |grep xlswriter 确认是否安装上

二  用dockerfile安装
这里在hyperf3.0 框架的dockerfile基础上进行修改
(Alpine Linux系统)

dokerfile文件内容

# Default Dockerfile_1
#
# @link     https://www.hyperf.io
# @document https://hyperf.wiki
# @contact  group@hyperf.io
# @license  https://github.com/hyperf/hyperf/blob/master/LICENSE

FROM hyperf/hyperf:8.0-alpine-v3.16-swoole
LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" app.name="Hyperf"

##
# ---------- env settings ----------
##
# --build-arg timezone=Asia/Shanghai
ARG timezone

ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
    APP_ENV=prod \
    SCAN_CACHEABLE=(true)

# update
RUN set -ex \
    # show php version and extensions
    && php -v \
    && php -m \
    && php --ri swoole \
    #  ---------- some config ----------
    && cd /etc/php* \
    # - config PHP
    && { \
        echo "upload_max_filesize=128M"; \
        echo "post_max_size=128M"; \
        echo "memory_limit=1G"; \
        echo "date.timezone=${TIMEZONE}"; \
    } | tee conf.d/99_overrides.ini \
    # - config timezone
    && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
    && echo "${TIMEZONE}" > /etc/timezone \
    && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories  && apk update \
    && apk update && apk add autoconf \
            gcc      \
            g++      \
            zlib-dev  \
            make \
    && cd /bin \
    && wget http://pear.php.net/go-pear.phar -O go-pear.php \
    && php go-pear.php  Y \
    && apk add php8-dev \
    && pecl install xlswriter  \
    && cd /tmp/pear/install \
    && mv xlswriter*.tgz  xlswriter.tgz \
    && tar -zxvf xlswriter.tgz \
    && mv xlswriter-*  xlswriter \
    && cp /usr/bin/phpize8  /usr/bin/phpize \
    && cd /tmp/pear/install/xlswriter \
    && phpize && ./configure --with-php-config=/usr/bin/php-config8 --enable-reader \
    && make && make install \
    && echo "extension=xlswriter.so" > /etc/php8/conf.d/xlswriter.ini \
    && echo -e "\033[42;37m Build Completed :).\033[0m\n" \
    # ---------- clear works ----------
    && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \

WORKDIR /opt/www

# Composer Cache
# COPY ./composer.* /opt/www/
# RUN composer install --no-dev --no-scripts
#
#COPY . /opt/www
#RUN composer install && php bin/hyperf.php
#
#EXPOSE 9508
#
#ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]

  (Ubuntu或Debian系统)

写在最后

可能会用到的命令:
composer config -g -l
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer install --ignore-platform-req=ext-xlswriter 忽略ext-xlswriter扩展
composer install --ignore-platform-reqs  设置忽略版本匹配

可以将配置好环境的容器生成镜像这样其他项目如果要用可以直接使用
docke  commit  安装好环境的容器名   新的镜像名文章来源地址https://www.toymoban.com/news/detail-737864.html

到了这里,关于docker容器中扩展安装(PHP8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP8知识详解:PHP8开发工具VS Code的安装

    作为PHP8的开发工具有很多,具有IDE功能的有phpstorm、Visual Studio Code、Sublime Text、NetBeans、Eclipse、Codelobster、PHP Designer等,当然还有很多轻量的工具,比如Notepad、Editplus等。本文给你介绍的是万能编辑器Visual Studio Code,简称VS Code。 我为什么选择Visual Studio Code呢?因为他是微软公

    2024年02月15日
    浏览(64)
  • Mac 安装php多版本,brew安装php8.0

     因为需要我要在mac上装两个php版本,先前我已经装过php7.4,下面我们逐步安装php8.0 直接运行安装  brew install php@8.0 遇到问题怀疑是仓库太老了,更新一下homebrew ,重新安装 brew update 安装成功了,不过看了下版本好像不能正常打印版本了  报错相关文档,查询了下好像是icu4c 这个

    2024年02月10日
    浏览(41)
  • ubuntu安装php8.1

    PHP8是PHP最新的Release版本,在这个版本也加入了很多新的功能。 但是在Ubuntu的默认apt库里,找不到PHP8,因此需要稍微做一些额外操作才能安装。 这个库来自于Ondřej Surý,他维护了一个包含了PHP最新版的库。 安装完成后,输入php --version 可以看到版本信息 extension 可以替换任

    2024年02月03日
    浏览(37)
  • DNMP一键部署PHP8.2和Laravel10的Docker环境

    服务器环境 所有命令皆在root用户下运行 VMware虚拟机下的ubuntu22.04 docker24.0.7 docker-compose 2.6.1 yeszao/dnmp开源仓库 仓库地址: https://gitee.com/yeszao/dnmp 本文章只提供整个部署的过程,对docker、dockerFile以及docker-compse的知识最好有初步的认识,才能更好的理解 ① 首先在/www文件夹拉取

    2024年01月20日
    浏览(53)
  • PHP开发日志 ━━ php8.3安装与使用组件Xdebug

    今天开头写点历史: 二十年前流行asp,当时用vb整合常用函数库写了一个dll给asp调用,并在此基础上开发一套仿windows界面的后台管理系统; 后来asp逐渐没落,于是在十多年前转投php,不久后用php写了一套mvc框架,同时参考asp仿windows经验,结合兴起的jQuery重写后台管理系统。

    2024年02月02日
    浏览(49)
  • 【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(105)
  • php8.2 编译安装(详细)+ bash脚本 (多linux版本)

    编译安装php8.2.10(2023.9.17更新) 以下操作在debian12(deb系-debianubuntu)和rocky9.2(red hat系-centosrocky linuxoracle linux)都测试过 仅限linux系统 在全文的最后,我写了bash脚本(只支持deb系),可以参考,直接运行bash脚本一键编译安装 1.下载并解压源码包 php官方下载页面 在/usr/l

    2024年02月06日
    浏览(56)
  • Centos7.9服务器编译安装Nginx1.24.0和php8.3

    服务器nginx原版本有安全漏洞,需要升级,由于原始是yum源安装,通过yum直接升级,无法正常升级完成,故而需要卸载yum源,重新编译安装。 1、查看原来nginx版本,ps查看原来nginx进程,运行状态: 查看nginx版本号为1.20:

    2024年02月20日
    浏览(50)
  • windows下全免费手动搭建php8+mysql8开发环境及可视化工具安装

    最近PHP项目少了,一直在研究UE5和Golang,但是考虑到政府、国企未来几年国产化的要求,可能又要重拾PHP。于是近日把用了N年的框架重新更新至适合PHP8.2以上的版本,同时也乘着新装机,再次搭建php和mysql开发环境。本文留个记录,以后方便操作。 选择最新版下载 https://ww

    2024年01月20日
    浏览(94)
  • docker-php扩展

    环境:docker-compose、php74 1.本地要有一份 php-src 2.wwwphp-srcext可以看到有一个 ext_skel.php 文件 3.通过ext_skel.php脚本创建了一个hello扩展,脚本目录在wwwphp-srcext目录下 4.wwwphp-srcexthello文件下的架构 5.编写代码扩展 编写helloword.c,可以通过PHP_FUNCTION定义函数 写一个测试方法,

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包