docker compose编排的php开发环境_docker-compose php7.2-程序员宅基地

技术标签: docker php开发环境  php  docker php环境  docker-compose  

phpDev 通过docker compose编排的php7.2开发环境;使用简便,部署快捷,并且可以有效的统一团队开发环境。

比如当有新的扩展加入,或者其他工具加入时,只需要将新扩展变更到源文件,其他开发者拉取最新代码重新编译就可以保持环境一致。
Git代码库地址:https://github.com/nangge/phpDev

启动:

> docker-compose up --build
#docker-compose up -d //守护进程
#docker-compose up -d --build //重新编译启动

首次编译可能需要较长时间,编译启动后通过浏览器访问localhost 或者 宿主机ip就可以看到php环境信息。

环境支持

  • php-fpm7.2
  • mysql5.6
  • nginx
  • composer

php已安装扩展

zmq、swoole、redis、pdo_mysql、mysqli、gd、zip

环境目录结构

│  .env     //docker环境配置文件
│  docker-compose.yml       //compose环境编排文件
├─app   //项目目录
│      50x.html
│      index.html
│      index.php //测试文件
├─data      //数据文件 主要用来数据卷挂载
│  ├─log    //nginx 日志文件;网站访问日志文件
│  │      nginx_error.log   //nginx error日志文件
│  ├─mysql  //mysql 数据文件
│  │  │  auto.cnf
│  │  │  ibdata1
│  │  │  ib_logfile0
│  │  │  ib_logfile1
│  │  ├─mysql //mysql 数据库
│  │  └─performance_schema 
│  └─redis //redis数据
│          dump.rdb
├─mysql  //mysql Dockerfile文件 包含基础镜像
│      Dockerfile
├─nginx     //nginx Dockerfile文件
│  │  Dockerfile
│  │  enable-php.conf
│  │  nginx.conf //nginx配置文件
│  └─conf.d //虚拟主机配置目录,如果需要监听其他端口,
            //则需要在docker-compose.yml 中的nginx下开放映射端口,比如 10000:10000
│          default.conf //默认配置文件
│          managez.com.conf //虚拟主机实例文件
├─phpfpm //nginx Dockerfile文件
│  │  Dockerfile //包含基础镜像 以及一些自定义指令 (php扩展)
│  └─conf
│          php.ini
└─redis //nginx Dockerfile文件
    │  Dockerfile
    └─conf
            redis.conf 

常用命令

  • 查看本地镜像
> docker image ls
  • 查看container
> docker container ls

CONTAINER ID        IMAGE                COMMAND                  CREATED              STATUS              PORTS                    NAMES
2b8d75cfc874        nginx_server    "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp       nginx_server
  • 进入指定container
> docker exec -it < container id/names > bash

#docker exec -it 2b8d75cfc874 bash
#docker exec -it nginx_server bash

#退出 Ctrl+D 或 exit
  • 查看指定container信息,返回json数据格式
> docker inspect < container id/names >

#docker inspect 2b8d75cfc874
#docker inspect nginx_server
  • 查看所有的 数据卷
> docker volume ls
DRIVER              VOLUME NAME
local               340445d47584c0795bc2133ef879afb1d19efaf8f1da31231df69834b24b04a3
local               3591dfe064a5a813ce23007814fa8fbdb7af881f8fd10fa280f294380cb6beaf
local               9813907674b919eb51fc560ff5e605ca7f3dce4092d58abfda5efa7e664b1f55
  • 查看指定 数据卷 的信息
> docker volume inspect [my-vol]    
# docker volume inspect 340445d47584c0795bc2133ef879afb1d19efaf8f1da31231df69834b24b04a3
  • 删除指定数据卷
> docker volume rm [VOLUME NAME]
  • 新建并启动一个container
> docker run [OPTIONS]  [image]
#docker run -p 8080:8080 -p 50000:50000 nginx_server
  • 启动/重启已存在的容器
> docker container start/restart [container name\id]
  • 终止运行中的容器
> docker stop [container name\id]
> docker stop $(docker ps -a -q) //  stop停止所有容器
  • 删除已停止的容器
> docker rm [container name\id]
> docker rm $(docker ps -a -q) //  删除停止所有容器

常见问题

  • Docker Toolbox Windows - Invalid volume specification
原因:绑定数据卷时,无法识别windows 路径
解决方法:
cat >.env
COMPOSE_CONVERT_WINDOWS_PATHS=1
  • Cannot create container for service XXX: b’Drive has not been shared’
原因:windows for docker 下没有向docker容器共享磁盘
解决方法:
windows for docker -> setting -> Shared Drives
选择盘符确定时会需要账户密码,如果登陆用户没有, 先设置密码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/free_ant/article/details/84841335

智能推荐

pyinstaller centos 打包记录_centos pyinstall-程序员宅基地

文章浏览阅读178次。报错2:error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such。报错1:OSError: Python library not found: libpython3.7mu.so.1.0, libpython3.7.so, l。添加库的配置信息,将python/lib的绝对路径(一般为:’/usr/python/lib’),添加至conf文件中。_centos pyinstall

linux下统计log中某个时间段的内出现某个关键字保存到文件_linux命令统计某个时间区间出现的关键字-程序员宅基地

文章浏览阅读674次。1、查看图中两个时间段内,且有“统计存储图片数据”的字段的日志 sed -n '/2021-06-03 11::25:34/,/2021-06-03 11:26:02/p' start.log |grep "统计存储图片数据" 注释: -n参数:只有经过sed特殊处理的那一行(或者动作)才会被显示 p参数:表示在终端打印出来 start.log:日志文件 grep: 对前面查询的结果进行过滤 "统计存储图片数据": 查询的关键字 时间段:格式和日志保持一致,且时间值是真实存在的2、将时._linux命令统计某个时间区间出现的关键字

手机翻译html工具,1分钟教你用手机实时翻译,自带翻译功能就是强大,各牌手机均可...-程序员宅基地

文章浏览阅读2.6k次。手机现在已经是我们的随身物品了,在很多事情上手机都可以帮助到我们,比如翻译,现在不仅是出国会用到翻译,就想平时的自我学习和工作上,都会遇到翻译的情况,今天就教大家一招用手机直接翻译的方法!今天主要就是给大家揭秘不同品牌手机里的翻译功能,一起来看看吧!1.小米手机小米手机在国产手机里的是非常受欢迎的,小米手机里的【扫一扫】不知道大家用过没有,我们打开扫一扫点击【翻译】然后选择翻译前后的语言,最后点击..._html格式的网页进行翻译

CSS背景background详解,background-position详解-程序员宅基地

文章浏览阅读3.3w次,点赞65次,收藏287次。背景(background)是css中一个重要的的部分,也是需要知道的css的基础知识之一。这篇文章将会涉及css背景(background)的基本用法,包括诸如 background-attachment 等的属性,也会介绍一些有关背景(background)的常用技巧,以及 css3 中的 背景(background)(包含4个新的背景(background)属性)。css2 中的背景(background)概述CSS2 中有5个主要的背景(background)属性,它们是:* ba_background-position

IDEA配置java环境-程序员宅基地

文章浏览阅读3.2k次。_idea配置java环境

解决:Uncaught TypeError: Cannot read properties of undefined (reading ‘props‘)_cannot read properties of undefined (reading 'prop-程序员宅基地

文章浏览阅读5.6w次,点赞8次,收藏5次。今天在react中子父传参里, 点击按钮向父组件传递信息时出现了这个错误如图:↓这个问题很明显, 从字面意思看就是props前面的这个值没有找到, 然后看源码里面, 前面是个this, 如下图:也就是在点击下面的button按钮时, 本来应该执行上面的sendMessage, 将父组件内容改掉, 可是却没有找到props前面的this, 然后测试在sendMessage方法中直接打印this , 发现是 undefined, 也就是说根本就没有this, 当然无法调用this里面的props_cannot read properties of undefined (reading 'props')

随便推点

m4s格式转换mp4怎么转?只需3个步骤~-程序员宅基地

文章浏览阅读894次,点赞8次,收藏6次。无论您使用的是Windows、Mac还是Linux系统,主流播放器如VLC、Windows Media Player、QuickTime等都能轻松打开MP4文件,确保用户能够在各种平台上畅快观影。如果需要将M4S转换成MP4,野葱视频转换器为我们提供了便捷的解决方案,不仅具有稳定性,极少发生文件损坏,而且转换速度快,大大节约了时间。随着网络视频的普及,M4S通过分片存储音频和视频数据,提高了网络传输的效率,使得用户在观看视频时能够更加流畅地体验。处理完成后,你将在指定的输出路径中找到生成的MP4文件。_m4s格式转换mp4

CAN协议_为什么can诊断都是7开头-程序员宅基地

文章浏览阅读596次。网络管理报文(CAN 4开头,CAN FD 5开头),应用报文,诊断报文(7开头,物理寻址:一对一 比如对单体安全访问,在线编程,功能寻址:服务需要一对多,保证ECU的状态相同,比如多个 ECU需要知道车速的信息,温度的信息)CAN_H的电平为3.5V,CAN_L线的电平为1.5V,CAN_H和CAN_L的电压差为2V左右,CAN_H和CAN_L线上的电压均为2.5v, CAN_H和CAN_L之间的电压差为0V。1、位错误:当总线赢得发送权后,会对总线电平进行侦听,当发送的电平和侦听的电平不一致;_为什么can诊断都是7开头

基于OPC自定义接口的OPCClient功能改进_titaniumas.opc.client-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏9次。在本人之前的一篇博文中描写了如何使用OPC自定义接口开发OPCClient,并使用SignalR实现数据的远程实时传输。融合SignalR的OPCClient实现环境参数实时监测但是在使用过程中发现仍有不足之处,本文就是对之前OPCClient的功能改进进行说明。1.问题描述原有的OPCClient在测试环境下可以正常运行,但是在实际生产环境下长时间运行后问题就逐渐暴露出来。主要的问..._titaniumas.opc.client

宏工科技十五周年,“归零心态”竞逐全球-程序员宅基地

文章浏览阅读75次。宏工科技十五周年,“归零心态”竞逐全球

c++中的extern “C“_c++ extern c-程序员宅基地

文章浏览阅读1.6k次。c++中的extern "C"_c++ extern c

一体机怎么修复音频服务器,多媒体教学一体机没有声音是怎么办?-程序员宅基地

文章浏览阅读7.3k次。教学一体机没有声音怎么办?教学一体机是结合多种传统终端设备为一体的智能设备,可以触摸,可以书写,可以传屏等等功能,主要是于Windows系统和Android系统为载体进行研发的。很多时候,教学一体会出现各种原因导致没有声音,具体原因可以分为软件问题和硬件问题,软件问题包括静音病毒、声卡驱动等,硬件问题包括接口、音响等问题。教学一体机没有声音怎么办?相信我们去查找过很多相关的问题,都没有得到一个准确..._一体机没有声音了怎么恢复

推荐文章

热门文章

相关标签