首页 > 编程语言 >Dockerfile与docker-compose搭建php环境

Dockerfile与docker-compose搭建php环境

时间:2023-07-11 22:55:38浏览次数:46  
标签:index www compose nginx html docker php fastcgi

 

目录结构

 

php.conf文件内容

server {
	listen	80;
	server_name	localhost;

	location / {
		root	/usr/share/nginx/html/web;
		index	index.php index.html index.htm;
	}

	error_page	500 502 503 504	/50x.html;
	location = /50x.html {
		root	/usr/share/nginx/html/web;
	}

	location ~ .php$ {
		fastcgi_pass	php:9000;
		fastcgi_index	index.php;
		fastcgi_param	SCRIPT_FILENAME	/www/web/$fastcgi_script_name;
		include		fastcgi_params;
	}
}

server {
	listen	80;
	server_name	docker.web1.com;

	location / {
		root	/usr/share/nginx/html/web1/public;
		index	index.php index.html index.htm;

		if (!-f $request_filename) {
            rewrite  ^(.*)$  /index.php?s=/$1  last;
        }
	}

	error_page	500 502 503 504	/50x.html;
	location = /50x.html {
		root	/usr/share/nginx/html/web1/public;
	}

	location ~ .php$ {
		fastcgi_pass	php:9000;
		fastcgi_index	index.php;
		fastcgi_param	SCRIPT_FILENAME	/www/web1/public/$fastcgi_script_name;
		include		fastcgi_params;
	}
}

docker-compose.yml配置内容

version: "3.9"
services:
  nginx:
    image: nginx
    privileged: true
    ports:
      - "80:80"
    volumes:
      - /Users/yf/Sites/www:/usr/share/nginx/html
      - /Users/yf/Sites/www/conf:/etc/nginx/conf.d
      - /Users/yf/Sites/www/logs:/var/log/nginx
    networks:
      - web-net
  php:
    #    image: phpdockerio/php72-fpm
    build: .
    privileged: true
    volumes:
      - /Users/yf/Sites/www:/www
    networks:
      - web-net
  mysql:
    #    image: mysql
    image: mysql/mysql-server:latest
    command:
      - "--default-authentication-plugin=mysql_native_password"
    volumes:
      - /Users/yf/Sites/www/mysql:/var/lib/mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root
    networks:
      - web-net
networks:
  web-net:

Dockerfile文件配置内容

FROM php:7.2-fpm

RUN docker-php-ext-install pdo_mysql \

&& docker-php-ext-install mysqli \

&& docker-php-ext-install exif \

&& docker-php-ext-install bcmath \

&& pecl install -o -f redis \

&& docker-php-ext-enable redis

# 镜像作者
MAINTAINER fy

# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1

# 设置容器内项目路径
ENV PROJECTPATH=/www

# 在容器内创建django文件夹
RUN mkdir -p $PROJECTPATH

# 设置容器内工作目录
WORKDIR $PROJECTPATH

# 将当前目录文件加入到容器工作目录中(. 表示当前宿主机目录)
ADD . $PROJECTPATH

 

标签:index,www,compose,nginx,html,docker,php,fastcgi
From: https://www.cnblogs.com/fyiyy/p/17546171.html

相关文章

  • Docker CLI docker logs 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 在Ubuntu下的docker下安装sqlserver并指定排序规则和语言
    最近在公司弄了个小程序,随便架了个sqlserver,再看微软官网的时候发现可以在docker下安装sqlserver,随便实践记录下先上微软的连接地址Docker:为Linux上的SQLServer安装容器-SQLServer|MicrosoftLearn这个是sqlserver2017的,其他版本也是类似的,其实都是微软docker了一个lin......
  • Docker部署
    概述最近在学习后端的各种中间件,如果一个个安装,估计所有的时间都得在部署运维上面了,没有时间编写测试代码了,因此学习记录下docker的方法,意在简化部署方式,将主要精力放在研究使用中间件上。官网下载安装dockerhttps://docs.docker.com/desktop/install/docker流程1.dockerpul......
  • Docker学习路线2:底层技术
    了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。Linux容器(LXC)Linux容器(LXC)是Docker的基础。LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系统在单个主机上运行,无需全功能的虚拟化。LXC有效地以安全和优化的方式隔离应用程......
  • PHP微信接入时的token验证
    微信接入时的token验证//微信token认证$signature=$_GET["signature"];$timestamp=$_GET["timestamp"];$nonce=$_GET["nonce"];$echostr=$_GET["echostr"];//你的设置Token$token="lingqiangkejiToken";//1)将......
  • Docker网络模式和案例分享
    Docker提供了多种网络模式和功能,以便在容器间建立网络通信和连接外部网络1.默认网络模式(bridge):Docker默认使用bridge网络模式,创建一个名为docker0的虚拟网桥,并为每个容器分配一个IP地址。容器间可以通过IP地址相互通信2.主机模式(host):使用主机模式时,容器直接使用宿主机......
  • centos7 用docker搭建Mysql主从
    安装Docker和DockerCompose:安装预置:sudoyumupdateyuminstallpython3-pipsudoyumgroupinstall"DevelopmentTools"sudoyuminstallepel-releasesudoyuminstallopenssl-devellibffi-develpython3-devel安装docker:yumremovedockerdocker-clientdocker-......
  • docker pull拉 x509: certificate has expired or is not yet valid:
    [[email protected]]#dockerpullXXXcode-analysis:centos7.3-1.0Errorresponsefromdaemon:Get"XXXX":x509:certificatehasexpiredorisnotyetvalid:currenttime2023-07-11T14:27:37+08:00isafter2018-08-22T11:54:50Z x509:c......
  • 网站木马文件查找之-列出2023年网站根目录下以及子目录所有php文件
    本代码适合查找网站挂马(木马)文件使用<?phpfunctionlistPhpFiles($directory){$fileList=[];$iterator=newRecursiveIteratorIterator(newRecursiveDirectoryIterator($directory));foreach($iteratoras$file){if($file->isFile()&&$......
  • docker部署mssql
    docker部署SQLServer2022参考微软官方文档Docker:为Linux上的SQLServer安装容器-SQLServer|MicrosoftLearn(安装的是开发人员版)1.请求映像dockerpullmcr.microsoft.com/mssql/server:2022-latest注意:server:xx,xx表示对应的版本(https://hub.docker.com/r/mi......