前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dockerfile构建PHP开发环境

dockerfile构建PHP开发环境

作者头像
友儿
发布2022-09-13 16:34:39
1.2K0
发布2022-09-13 16:34:39
举报
文章被收录于专栏:友儿

概述

安装了一些工具

cron、curl、telnet、git、zlib1g-dev、nginx、supervisor、libzip-dev、unzip、procps、sudo、vim

安装了一些常用的PHP扩展

composer、gd、xdebug、zip、pdo_mysql、opcache、mysqli、bcmath、redis、mongodb、swoole

安装了supervisor守护进程,保证进程安全运行

代码语言:javascript
复制
├── code
│   └── index.php
├── conf
│   └── nginx.conf
├── install
│   ├── init.sh
│   └── install-php-extensions
├── logs
│   ├── nginx
│   │   ├── access.log
│   │   ├── error.log
│   │   ├── www.test.com_access.log
│   │   └── www.test.com_error.log
│   └── php
│       └── php_errors.log
├── REAMME.md
└── web.Dockerfile
web.Dockerfile
代码语言:javascript
复制
FROM php:7.4-fpm

MAINTAINER ZhengNiu "771036148@qq.com"

COPY ./install/install-php-extensions /usr/local/bin/

RUN sed -i "s#http://deb.debian.org#http://mirrors.aliyun.com#g" /etc/apt/sources.list && \
    rm -rf /var/lib/apt/lists/* && \
    chmod +x /usr/local/bin/install-php-extensions && \
    apt-get update && \
    apt-get install -y cron curl telnet git zlib1g-dev nginx supervisor  libzip-dev unzip procps sudo vim && \
    /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone && \
#    php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" && \
#    php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
#    php -r "unlink('composer-setup.php');" && \
    apt-get clean && rm -rf /var/cache/apt/* && \
    install-php-extensions gd xdebug zip pdo_mysql opcache mysqli bcmath redis mongodb swoole @composer && \
    unlink /etc/nginx/sites-enabled/default && \
    /bin/cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini && \
    sed -i "482c display_errors = On" /usr/local/etc/php/php.ini && \
    sed -i "503c log_errors = On" /usr/local/etc/php/php.ini && \
    sed -i "586c error_log = /var/log/php/php_errors.log" /usr/local/etc/php/php.ini && \
    sed -i "12c nodaemon=true" /etc/supervisor/supervisord.conf && \
    echo "[program:cron]\ncommand=cron -f\n\n[program:nginx]\ncommand=/usr/sbin/nginx -g 'daemon off;'\n\n[program:php]\ncommand=/usr/local/sbin/php-fpm --nodaemonize" > /etc/supervisor/conf.d/web.conf

WORKDIR /var/www/html

EXPOSE 80

CMD ["supervisord","-c","/etc/supervisor/supervisord.conf"]
准备nginx.conf 配置文件
代码语言:javascript
复制
server {
     listen       80;
     server_name  www.test.com;
     root   /var/www/html;
     index index.html index.htm index.php;

     access_log /var/log/nginx/www.test.com_access.log;
     error_log /var/log/nginx/www.test.com_error.log;

     location / {
         try_files $uri $uri/ /index.php?$query_string;
     }

     error_page 404 /index.php;

     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;
     }

     location ~ /\.(?!well-known).* {
         deny all;
     }
}
准备index.php入口文件
代码语言:javascript
复制
<?php

phpinfo();
构建镜像 && 启动容器
代码语言:javascript
复制
//构建镜像
docker build -t web:1.0 -f web.Dockerfile .

//运行容器
docker run --name web -d -p 80:80 -v $PWD/code:/var/www/html -v $PWD/conf:/etc/nginx/conf.d -v $PWD/logs:/var/log web:1.0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 安装了一些工具
      • web.Dockerfile
        • 准备nginx.conf 配置文件
          • 准备index.php入口文件
            • 构建镜像 && 启动容器
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档