700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > docker使用DockerFile构建php镜像

docker使用DockerFile构建php镜像

时间:2024-02-07 12:50:17

相关推荐

docker使用DockerFile构建php镜像

使用docker pull下来的php-fpm容器如果直接使用会提示缺少某些扩展

在容器内安装扩展后如果不小心删除掉容器重新打开run一次镜像又要再重新安装

所以最好是用 dockerfile 一次性安装好镜像里的扩展然后打包推送到镜像仓库方便下次使用

下面是基于 php:7.2.8-fpm 构建的php镜像 Dockerfile

包含基本扩展和 redis | memcache | amqp | swoole

FROM php:7.2.8-fpmMAINTAINER yuantong <1341712962@>RUN sed -i "s@@@g" /etc/apt/sources.list \&& cat /etc/apt/sources.list \&& rm -Rf /var/lib/apt/lists/* \&& apt-get update \&& apt-get -y install wget \&& docker-php-ext-install mysqli \&& docker-php-ext-install pdo_mysql \&& docker-php-ext-install sockets \&& apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev librabbitmq-dev \&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \&& docker-php-ext-install -j$(nproc) gdRUN pecl install -o -f redis \&& rm -rf /tmp/pear \&& docker-php-ext-enable redis \&& wget /get/memcache-4.0.5.2.tgz \&& tar zxvf memcache-4.0.5.2.tgz \&& docker-php-source extract \&& rm memcache-4.0.5.2.tgz && mv memcache-4.0.5.2 /usr/src/php/ext/memcache \&& docker-php-ext-install memcache \&& pecl install -o -f amqp \&& docker-php-ext-enable amqp \&& pecl install -o -f swoole \&& docker-php-ext-enable swoole

在 dockerfile 的文件目录运行

docker build -t <container-name>:<tag> .#container-name:镜像名称#tag : 镜像标签#. :dockerfile文件所在目录

参考:docker build 命令

build完成后运行该镜像

docker run -d -p 9000:9000 --name php-test container-name:php#运行容器docker exec -it php-test bash#进入容器php -m 查看php扩展root@d968143ae7f4:/var/www/html# php -m[PHP Modules]amqp CorectypecurldatedomfileinfofilterftpgdhashiconvjsonlibxmlmbstringmemcachemysqlimysqlndopensslpcrePDOpdo_mysqlpdo_sqlitePharposixreadlineredisReflectionsessionSimpleXMLsocketssodiumSPLsqlite3standardswooletokenizerxmlxmlreaderxmlwriterzlib[Zend Modules]

可以看到 redis | memcache | amqp | swoole 均已安装成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。