[請益] 解析container stats與log

看板PHP作者 (Isolator_AY)時間2年前 (2022/08/07 18:08), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/2 (看更多)
最近在嘗試透過php curl抓取docker remote api傳出的JSON顯示在自己的網頁上,但是遇 上一些問題 我是利用docker composer同時啟動兩個container,分別是nginx 1.23與php 7.4-fpm 第一個問題是 ip/containers/$containerID/logs?stdout=true 在抓nginx的log可以看到一些資訊,但是從php容器得到的卻是空字串 第二個問題是 ip/containers/$containerID/stats 直接丟瀏覽器網址欄是持續進行每秒更新一次的..呃..是叫streaming嗎? 利用跟前面取得log、容器列表等等同樣的curl處裡方式卻會直接得到一個空值字串,請問 這種要如何正常的解析呢? 另外就是有嘗試利用網路上的JSON parser先解析直接丟瀏覽器得到的JSON 資料,發現除了 最開始的第一筆資料外,後續更新的都會在"precpu_stats"中包含了前一次的percpu_usage ,而網路上的JSON parser會將這裡標記為語法錯誤 請問這種是不是用php json_decode()就會無法轉換成陣列? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.129.183 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1659866880.A.F6B.html

08/13 01:06, 2年前 , 1F
有 sample code 嗎?
08/13 01:06, 1F

08/13 01:07, 2年前 , 2F
所以有兩個 API: log / stats ?
08/13 01:07, 2F

08/13 01:11, 2年前 , 3F
然後你的意思是在 PHP 取不到 nginx 的 access log
08/13 01:11, 3F

08/17 13:50, , 4F
第一個問題解決了,只要URL後面加上detail=true就好
08/17 13:50, 4F

08/17 13:52, , 5F
第二個問題的程式大致上是這樣
08/17 13:52, 5F

08/17 13:53, , 6F
$url=$ip."containers/$dockerID/stats";
08/17 13:53, 6F

08/17 13:57, , 7F
$ch=curl_init();
08/17 13:57, 7F

08/17 13:57, , 8F
curl_setopt()有四個參數,returntransfer=true
08/17 13:57, 8F

08/17 13:57, , 9F
timeout=50
08/17 13:57, 9F

08/17 13:57, , 10F
url=$url
08/17 13:57, 10F

08/17 13:57, , 11F
httpheader contenttype,accept都是application/json
08/17 13:57, 11F

08/17 13:58, , 12F
$output=curl_exec($ch)
08/17 13:58, 12F

08/17 13:58, , 13F
var_dump($output)得到bool(false)
08/17 13:58, 13F
文章代碼(AID): #1Yxuy0zh (PHP)
討論串 (同標題文章)
文章代碼(AID): #1Yxuy0zh (PHP)