今天最後一步,docker compose的快速部署。php
兩臺搭建服務器,一臺php服務器,一臺html服務器html
docker-compose.ymlnginx
version : "2" services: user-service: image: php:apache volumes: - /Users/chenpei/docker/php/:/var/www/html ports: - 8002:80 website: image: nginx:latest volumes: - /Users/chenpei/docker/html/:/usr/share/nginx/html ports: - 8000:80 depends_on: - user-service
html代碼片斷web
const xhr = new XMLHttpRequest(); xhr.open("get",url,true); xhr.send(); xhr.onreadystatechange = () =>{ if(xhr.readyState == 4){ if(xhr.status == 200){ let data = JSON.parse(xhr.responseText); console.log(data); } } }
php代碼片斷 ajax
echo json_encode([ "name" => "xx", "tel" => "11111111111", "address" => [ "province" => "a", "city" => "b" ] ])
利用docker comopose-up 啓動docker
這個地方使用ajax直接使用了服務名來調用,沒有調通。
後來想起來了,ajax調用是發生在客戶端。因此用服務名固然調不通。
因此改用了apache
let url = "http://localhost:8002/";
添加同源跨站代碼json
header("Access-Control-Allow-Origin:\*");
docker-compose.yml的depends_on其實能夠去掉
在多添加一臺服務器。從新添加一個服務,測試一個下服務名的調用。windows
dokcer-compose.yml服務器
version : "2" services: user-service: image: php:apache volumes: - /Users/chenpei/docker/php/:/var/www/html ports: - 8002:80 depends_on: - shop-service shop-service: image: php:apache volumes: - /Users/chenpei/docker/php2/:/var/www/html ports: - 8001:80 website: image: nginx:latest volumes: - /Users/chenpei/docker/html/:/usr/share/nginx/html ports: - 8000:80
php2文件
echo json_encode([ "book1", "book2" ]);
php文件
$shop_info = json_decode(file_get_contents("http://shop-service"),true); $user_info = [ "name" => "xx", "tel" => "11111111111", "address" => [ "province" => "a", "city" => "b" ] ]; $user_info["shop"] = $shop_info; echo json_encode($user_info);
html文件沒有改變,再從新啓動。
總結
對於我的而言
mac每一次版本更新,都會把自帶的apache的配置的文件給格式化。
我用windows的虛擬機時候,用的橋接網絡出過幾回問題了。而且在虛擬機上部署一個環境很長時間。
對於企業來言,
中小企業,一個新的項目能夠快速部署,開發環境和測試環境。而大企業而言,應該就是彈性伸縮
yml文件的格式 version: 版本services: 開始定義服務,每一個docker容器爲一個服務。service: 這裏咱們定義了第一個服務,app 爲其名字 image: 鏡像 build: 能夠利用dockerfile構建 context: 構建下文. dockerfile: dockerfile文件 volumes: 掛載目錄 working_dir: 指定容器工做目錄 environment: 設置環境變量。 command: 容器須要執行命令 depends_on: 決定依賴的服務 links: 連接到另外一個服務中的容器 啓動docker-composedocker-compose up 啓動docker-compose up -d 後臺啓動