
最近两天将自己的项目从宝塔抽离出来转到docker进行部署,最近刚好有一个项目的环境是PHP+Nginx需要进行抽离,想到将代码直接打包到PHP+Nginx镜像里进行部署,基于这个需求,决定构建一个PHP+Nginx环境镜像作为基础镜像。下面跟大家分享构建步骤


server {listen 80;server_name localhost;root var/www/html;index index.html index.htm index.nginx-debian.html;location {try_files $uri $uri/ =404;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}

<?phpphpinfo();

#!/usr/bin/env shset -ecrondphp-fpm -Dnginx -g 'daemon off;'

FROM php:7.3.32-fpm-alpine3.13LABEL MAINTAINER="hzx790254812@gmail.com"ENV TZ "Asia/Shanghai"# 时区RUN echo ${TZ} >/etc/timezone# 创建www用户RUN addgroup -g 1000 -S www && adduser -s sbin/nologin -S -D -u 1000 -G www www# 配置阿里云镜像源,加快构建速度。RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories# PHPIZE_DEPS包含gcc g++等编译辅助类库,完成后删除;pecl安装扩展。RUN apk add --no-cache $PHPIZE_DEPS \&& apk add --no-cache libstdc++ libzip-dev vim\&& apk update \&& pecl install redis-5.3.0 \&& pecl install zip \&& pecl install swoole \&& docker-php-ext-enable redis zip swoole\&& apk del $PHPIZE_DEPS# docker-php-ext-install安装扩展。RUN apk update \&& apk add --no-cache nginx freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev \&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ \&& docker-php-ext-install -j$(nproc) gd \&& docker-php-ext-install -j$(nproc) pdo_mysql opcache bcmath mysqli# 安装ComposerRUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"RUN php composer-setup.phpRUN php -r "unlink('composer-setup.php');"RUN mv composer.phar /usr/local/bin/composer# Nginx配置COPY default.conf /etc/nginx/http.d/COPY index.php /var/www/html# 在run.shCOPY run.sh /run.shRUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" && mkdir -p /run/nginx/ && chmod +x /run.sh# 执行run.shENTRYPOINT ["/run.sh"]# 暴露端口EXPOSE 80
我们直接拿一个PHP7.3做基础镜像,安装Nginx以及Composer

docker build -t hongzhuangxian/php7.3_nginx .
等待构建完成即可,为了方便使用,我们可以将他push到镜像仓库,我这里是放在阿里云镜像仓库。
文章转载自程序员技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





