×

dockerphp扩展

dockerphp扩展(docker p p)

admin admin 发表于2023-03-25 23:05:08 浏览46 评论0

抢沙发发表评论

本文目录一览:

在PhpStrom中配置Docker作为本地开发环境

平时大家在开发php项目的时候,本地都要装php程序和composer,做单元测试的时候还需要phpunit,如果需要单测覆盖率的话还要开启debug,本文将使用一个docker镜像搞定这些。

下面是一个php7.3+composer2.1+phpunit9.5的dockerfile,大家也可以根据自己的需要进行修改,然后自己构建为镜像

我把构建的镜像打个标签phpstorm:7.3-composer,方便下边使用

也可以拉取我已经构建好的镜像

本地要先启动docker desktop

2.1点击配置 》PHP 》CLI解释器

2.2 点击+ 》Form docker 》 docker 》选择第一步构建的镜像

2.3 添加成功后如下图,我们可以看到php版本号和xdebug的版本,然后点击应用,确定

2.4 这时已经配置成功了,phpstorm会自动生成路径映射,把项目根目录映射到容器中/opt/project

3.1 这步配置比较简单,看图就可以了

3.2 安装一个包测试一下

新建一个composer.json文件,点击 【工具】 》【composer】》【管理依赖项】》在composer.json文件里随便写一个包名,然后点击安装,如果执行成功,这步就完成了。如果失败,可以查看事件日志是否缺少某些php扩展,然后在dockerfile里安装扩展,重新构建镜像,再次点击composer安装,重新构建镜像不用再重新配置phpstorm。-dockerphp扩展

添加命令行工具,选择composer

看到输出composer版本号,也就配置成功一半了。

我们执行下

配置就直接看图吧

写个单元测试一下,首先准备一个要测试的文件如下

然后点击 【使用覆盖率运行】,开始测试

Docker php安装扩展步骤详解

Docker 中的PHP容器安装扩展的方式有

1、通过pecl方式安装

2、通过php 容器中自带的几个特殊命令来安装,这些特殊命令可以在Dockerfile中的RUN命令中进行使用。

docker-php-source extract | delete

参数说明:

案例:

命令格式:

docker-php-ext-install “源码包目录名”

注意点:

案例:

Dockerfile使用官方php镜像安装扩展不成功?

镜像中没有make命令,甚至没有gcc、g++,虽然有pecl,但是由于没有gcc编译器,所以也不能运行phpize其实在该镜像的/usr/local/bin目录下有一个docker-php-ext-install程序专门用来安装php扩展运行它即可显示出能够安装的扩展,配合docker-php-ext-enable程序可以控制扩展的启动/禁用。-dockerphp扩展

docker 安装php扩展出错,bash: docker-php-ext-install: command not found

不是这样用的啊 进容器后 直接 yum install php 就完了 进容器后就不支持 docker+命令了

Docker PHP 安装扩展汇总

FROM php:7.2-fpm

Core, ctype, curl

date, dom

fileinfo, filter, ftp

hash

iconv

json

libxml

mbstring, mysqlnd

openssl

pcre, PDO, pdo_sqlite, Phar, posix

readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard

tokenizer

xml, xmlreader, xmlwriter

zlib

RUN docker-php-ext-install -j$(nproc) bcmath calendar exif gettext

sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm

RUN apt-get update

apt-get install -y --no-install-recommends libbz2-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) bz2

RUN apt-get update

apt-get install -y --no-install-recommends libenchant-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) enchant

RUN apt-get update

apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/

docker-php-ext-install -j$(nproc) gd

RUN apt-get update

apt-get install -y --no-install-recommends libgmp-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) gmp

RUN apt-get update

apt-get install -y --no-install-recommends libxml2-dev libtidy-dev libxslt1-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) soap wddx xmlrpc tidy xsl

RUN apt-get update

apt-get install -y --no-install-recommends libzip-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) zip

RUN apt-get update

apt-get install -y --no-install-recommends libsnmp-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) snmp

RUN apt-get update

apt-get install -y --no-install-recommends libpq-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) pgsql pdo_pgsql

RUN apt-get update

apt-get install -y --no-install-recommends libpspell-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) pspell

RUN apt-get update

apt-get install -y --no-install-recommends librecode-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) recode

RUN apt-get update

apt-get install -y --no-install-recommends firebird-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) pdo_firebird

RUN apt-get update

apt-get install -y --no-install-recommends freetds-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-configure pdo_dblib --with-libdir=lib/x86_64-linux-gnu

docker-php-ext-install -j$(nproc) pdo_dblib

RUN apt-get update

apt-get install -y --no-install-recommends libldap2-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu

docker-php-ext-install -j$(nproc) ldap

RUN apt-get update

apt-get install -y --no-install-recommends libc-client-dev libkrb5-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-configure imap --with-kerberos --with-imap-ssl

docker-php-ext-install -j$(nproc) imap

RUN apt-get update

apt-get install -y --no-install-recommends firebird-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) interbase

RUN apt-get update

apt-get install -y --no-install-recommends libicu-dev

rm -r /var/lib/apt/lists/*

docker-php-ext-install -j$(nproc) intl

RUN apt-get update \

apt-get install -y --no-install-recommends libmcrypt-dev

rm -r /var/lib/apt/lists/*

pecl install mcrypt-1.0.1

docker-php-ext-enable mcrypt

RUN export CFLAGS=" PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS"

apt-get update

apt-get install -y --no-install-recommends libmagickwand-dev

rm -rf /var/lib/apt/lists/*

pecl install imagick-3.4.3

docker-php-ext-enable imagick

RUN apt-get update \

apt-get install -y --no-install-recommends zlib1g-dev libmemcached-dev

rm -r /var/lib/apt/lists/*

pecl install memcached

docker-php-ext-enable memcached

RUN pecl install redis-4.0.1 docker-php-ext-enable redis

RUN docker-php-ext-configure opcache --enable-opcache docker-php-ext-install opcache

RUN set -ex;

docker-php-source extract;

{

echo '# ' ;

echo 'AC_DEFUN([PHP_ALWAYS_SHARED],[])dnl';

echo;

cat /usr/src/php/ext/odbc/config.m4;

} temp.m4;

mv temp.m4 /usr/src/php/ext/odbc/config.m4;

apt-get update;

apt-get install -y --no-install-recommends unixodbc-dev;

rm -rf /var/lib/apt/lists/*;

docker-php-ext-configure odbc --with-unixODBC=shared,/usr;

docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr;

docker-php-ext-install odbc pdo_odbc;

docker-php-source delete

LABEL Author="Leo"

LABEL Version="1.0.25-fpm"

LABEL Description="PHP FPM 7.2 镜像. All extensions."