当前位置: 首页 > 后端技术 > PHP

docker学习笔记之dockercompose

时间:2023-03-29 19:41:43 PHP

今天最后一步是快速部署dockercompose。两台构建服务器,一台php服务器,一台html服务器docker-compose.ymlversion:"2"services:user-service:image:php:apachevolumes:-/Users/chenpei/docker/php/:/var/www/html端口:-8002:80网站:图片:nginx:最新卷:-/Users/chenpei/docker/html/:/usr/share/nginx/html端口:-8000:80depends_on:-用户服务html代码片段constxhr=新的XMLHttpRequest();xhr.open("get",url,true);xhr.发送();xhr.onreadystatechange=()=>{if(xhr.readyState==4){if(xhr.status==200){letdata=JSON.parse(xhr.responseText);控制台日志(数据);}}}php代码片段echojson_encode(["name"=>"xx","tel"=>"11111111111","address"=>["province"=>"a","city"=>"b"]])这个地方用dockercomopose-up启动,用ajax直接用服务名调用,不用调通。然后我想起来ajax调用发生在客户端。因此,它当然不适用于服务名称。所以改为让url="http://localhost:8002/";添加同源跨站代码头("Access-Control-Allow-Origin:\*");其实可以去掉docker-compose.yml的depends_on多加一台服务器。重新添加一个服务,测试服务名下的调用。dokcer-compose.ymlversion:"2"services:user-service:image:php:apachevolumes:-/Users/chenpei/docker/php/:/var/www/htmlports:-8002:80depends_on:-shop-服务商店服务:图片:php:apache卷:-/Users/chenpei/docker/php2/:/var/www/html端口:-8001:80网站:图片:nginx:最新卷:-/Users/chenpei/docker/html/:/usr/share/nginx/htmlports:-8000:80php2文件echojson_encode(["book1","book2"]);php文件$shop_info=json_decode(file_get_contents("http://shop-service"),true);$user_info=["name"=>"xx","tel"=>"11111111111","address"=>["省"=>"a","市"=>"b"]];$user_info["shop"]=$shop_info;echojson_encode($user_info);html文件没有变化,重启。总结对于个人而言,每次mac版本更新,都会对内置的apache配置文件进行格式化。当我使用Windows虚拟机时,桥接网络出现了几个问题。而且在虚拟机上部署一个环境需要很长时间。对于企业、中小企业,一个新项目可以快速部署,开发环境和测试环境。对于大型企业来说,应该是自动伸缩yml文件version的格式:versionservices:开始定义服务,每个docker容器就是一个服务。service:这里我们定义了第一个服务,app是它的名字image:镜像build:可以用dockerfile构建context:构建如下。dockerfile:dockerfile文件volumes:挂载目录ronenmentworking_dir:指定容器command:容器需要执行的命令depends_on:确定它所依赖的服务links:链接到另一个服务中的容器startdocker-composeddocker-composeup启动docker-composeup-d后台启动