<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://192.168.25.90:53000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tacoball</id>
	<title>Fundamental Ramen - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://192.168.25.90:53000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tacoball"/>
	<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/wiki/Special:Contributions/Tacoball"/>
	<updated>2026-10-06T09:30:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Useful_Commands/Service_Management&amp;diff=3844</id>
		<title>Useful Commands/Service Management</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Useful_Commands/Service_Management&amp;diff=3844"/>
		<updated>2026-10-06T07:37:36Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* systemctl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== systemctl ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Monitor ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; copy&amp;gt;&lt;br /&gt;
journalctl -u llama-swap -n 10 -f&lt;br /&gt;
&lt;br /&gt;
journalctl -u llama-swap --since &amp;quot;10:20&amp;quot;&lt;br /&gt;
journalctl -u llama-swap --since &amp;quot;10 minutes ago&amp;quot;&lt;br /&gt;
journalctl -u llama-swap --since today&lt;br /&gt;
&lt;br /&gt;
systemctl status llama-swap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Setup ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl disable llama-swap&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /home/xxx/yyy/llama-swap.service llama.service&lt;br /&gt;
sudo systemctl enable llama-swap&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Control ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl start  nginx&lt;br /&gt;
systemctl stop   nginx&lt;br /&gt;
systemctl reload nginx&lt;br /&gt;
systemctl reload systemd-networkd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| List ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl -t service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Run Level ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target || ! Description&lt;br /&gt;
|-&lt;br /&gt;
| multi-user.target || Multi-user mode (CLI) (Equivalent to Runlevel 3)&lt;br /&gt;
|-&lt;br /&gt;
| graphical.target || Graphical mode (GUI) (Equivalent to Runlevel 5)&lt;br /&gt;
|-&lt;br /&gt;
| rescue.target || Rescue mode (Equivalent to Runlevel 1)&lt;br /&gt;
|-&lt;br /&gt;
| emergency.target || Emergency mode (Equivalent to Runlevel 0)&lt;br /&gt;
|-&lt;br /&gt;
| reboot.target || Reboot&lt;br /&gt;
|-&lt;br /&gt;
| poweroff.target || Power off&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3843</id>
		<title>Test QuickGV</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3843"/>
		<updated>2026-10-06T07:12:46Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;main&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A --&amp;gt; B2&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 認知負荷 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;cognitive-load&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  ((認知負荷))&lt;br /&gt;
    ((熟能生巧&amp;lt;br&amp;gt;有效認知負荷&amp;lt;br&amp;gt;germane))&lt;br /&gt;
      --&amp;gt; 數學解題突破盲腸&lt;br /&gt;
      --&amp;gt; 游泳換氣成功了&lt;br /&gt;
      --&amp;gt; 繞口令不吃螺絲&lt;br /&gt;
    ((錯綜複雜&amp;lt;br&amp;gt;內在認知負荷&amp;lt;br&amp;gt;intrinsic))&lt;br /&gt;
      --&amp;gt; 教材太難, 越級打怪&lt;br /&gt;
      --&amp;gt; 基礎知識沒學好&lt;br /&gt;
    ((莫名其妙&amp;lt;br&amp;gt;外在認知負荷&amp;lt;br&amp;gt;extraneous))&lt;br /&gt;
      --&amp;gt; 教材太多雜訊&lt;br /&gt;
      --&amp;gt; 光罰寫就寫不完&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Colored Edge =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;colored-edge&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A1([&amp;quot;👩🏻‍💻 Human&amp;quot;])&lt;br /&gt;
  A2([&amp;quot;🤖 Agent&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
  B1(&amp;quot;HTTP&amp;lt;br&amp;gt;(Fiber v3)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  subgraph backend handlers  &lt;br /&gt;
    B2(&amp;quot;API handler&amp;quot;)&lt;br /&gt;
    B3(&amp;quot;MCP HTTP&amp;quot;)&lt;br /&gt;
    B4(&amp;quot;Streamable Handler&amp;quot;)&lt;br /&gt;
    B5(&amp;quot;SSE handler&amp;quot;)&lt;br /&gt;
    B6(&amp;quot;MCP Server&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph backend services&lt;br /&gt;
    C1(Mermaid to SVG)&lt;br /&gt;
    C2(Mermaid to PNG)&lt;br /&gt;
    C3(XML Formatter)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph frontend&lt;br /&gt;
    B7(&amp;quot;Nuxt.js&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph resources&lt;br /&gt;
    D1(Mermaid Container&amp;lt;br&amp;gt;yuzutech/kroki-mermaid)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% human path&lt;br /&gt;
  A1 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |the rest URI| B7&lt;br /&gt;
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% agent path&lt;br /&gt;
  A2 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |/mcp or /sse| B3&lt;br /&gt;
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% api path&lt;br /&gt;
  B7 --&amp;gt; |axios| B1&lt;br /&gt;
  B1 --&amp;gt; |/api| B2&lt;br /&gt;
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  B3 --&amp;gt; |/mcp| B4&lt;br /&gt;
  B3 --&amp;gt; |/sse| B5&lt;br /&gt;
  B4 &amp;amp; B5 --&amp;gt; B6&lt;br /&gt;
  B6 --&amp;gt; C1 &amp;amp; C2 &amp;amp; C3&lt;br /&gt;
  B2 --&amp;gt; D1&lt;br /&gt;
  C1 &amp;amp; C2 --&amp;gt; D1&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dish =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;dish&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  A[Dish]&lt;br /&gt;
    B1[Sauce Dish]&lt;br /&gt;
    B2[Shark&#039;s Fin Soup Dish]&lt;br /&gt;
    B3[Divided Dish]&lt;br /&gt;
    B4[Cassesrole Dish]&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MMD =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;testmmd&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Root(&amp;quot;規則動詞變化&amp;lt;br&amp;gt;(play)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Root --&amp;gt; Past(&amp;quot;過去&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Pres(&amp;quot;現在&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Fut(&amp;quot;未來&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Past --&amp;gt; P1(&amp;quot;過去普通: played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P2(&amp;quot;過去進行: was/were playing&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P3(&amp;quot;過去完成: had played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P4(&amp;quot;過去被動: was/were played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Pres --&amp;gt; R1(&amp;quot;現在普通: play / plays&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R2(&amp;quot;現在進行: am/is/are playing&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R3(&amp;quot;現在完成: have/has played&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R4(&amp;quot;現在被動: am/is/are played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Fut --&amp;gt; F1(&amp;quot;未來普通: will play&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F2(&amp;quot;未來進行: will be playing&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F3(&amp;quot;未來完成: will have played&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F4(&amp;quot;未來被動: will be played&amp;quot;)&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= WebSocket Service =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;123&amp;quot; theme=&amp;quot;warm&amp;quot; usage=&amp;quot;ram&amp;quot;&amp;gt;&lt;br /&gt;
subgraph cluster_client {&lt;br /&gt;
  label=&amp;quot;WebSocket Client&amp;quot;&lt;br /&gt;
  c1[label=&amp;quot;var ws = new WebSocket(&#039;/foo&#039;)&amp;quot;];&lt;br /&gt;
  c2[label=&amp;quot;ws.onerror = function (ev) ...&amp;quot;];&lt;br /&gt;
  c3[label=&amp;quot;ws.onopen = function (ev) ...&amp;quot;];&lt;br /&gt;
  c4[label=&amp;quot;ws.onmessage = function (ev) ...&amp;quot;];&lt;br /&gt;
  c5[label=&amp;quot;ws.send()&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_server {&lt;br /&gt;
  label=&amp;quot;&amp;quot;;&lt;br /&gt;
  s[label=&amp;quot;Service Unit | &amp;lt;rh&amp;gt; Request Handler | &amp;lt;ph&amp;gt; Push Handler | &amp;lt;pw&amp;gt; Push Worker | &amp;lt;mh&amp;gt; Message Handler | &amp;lt;mw&amp;gt; Message Worker&amp;quot;];&lt;br /&gt;
  iq[label=&amp;quot;Inbound Queue&amp;quot;];&lt;br /&gt;
  oq[label=&amp;quot;Outbound Queue&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
c1 -&amp;gt; s:rh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
c2 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c3 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c4 -&amp;gt; s:ph [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:ph -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:pw -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
c5 -&amp;gt; s:mh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mh -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mw -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= testflow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G51&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;五環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Development\n測試模擬交易&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Staging\n測試真實交易&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Sandbox\n供分銷商測試&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Production\n實際營運&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B;&lt;br /&gt;
B -&amp;gt; C;&lt;br /&gt;
B -&amp;gt; D;&lt;br /&gt;
C -&amp;gt; E;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G52&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;三環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Sandbox\n升級新功能&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Production\n升級新功能&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B -&amp;gt; C;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Crawling Flow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G4&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;Website&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;Proxy Server&amp;quot;];&lt;br /&gt;
A3 [label=&amp;quot;Daily Cache&amp;quot;];&lt;br /&gt;
A4 [label=&amp;quot;Hash Cache&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B [label=&amp;quot;Requests Session&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Crawler&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
D1 [label=&amp;quot;BeautifulSoup\n(HTML)&amp;quot;];&lt;br /&gt;
D2 [label=&amp;quot;json\n(JSON)&amp;quot;];&lt;br /&gt;
D3 [label=&amp;quot;Pandas\n(CSV)&amp;quot;];&lt;br /&gt;
D4 [label=&amp;quot;Custom Datasource&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
E1 [label=&amp;quot;Handler&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
E2 [label=&amp;quot;Models&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
F1 [label=&amp;quot;SQLAlchemy&amp;quot;];&lt;br /&gt;
F2 [label=&amp;quot;Console&amp;quot;];&lt;br /&gt;
F3 [label=&amp;quot;GeoJSON&amp;quot;];&lt;br /&gt;
F4 [label=&amp;quot;Elastic Search&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
G1 [label=&amp;quot;SQLite&amp;quot;];&lt;br /&gt;
G2 [label=&amp;quot;PostgreSQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G3 [label=&amp;quot;MySQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G4 [label=&amp;quot;MongoDB&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A1 -&amp;gt; A2;&lt;br /&gt;
{A1 A2} -&amp;gt; B;&lt;br /&gt;
{B A3 A4} -&amp;gt; C;&lt;br /&gt;
C -&amp;gt; {D1 D2 D3 D4} -&amp;gt; E1 -&amp;gt; {F1 F2 F3 F4};&lt;br /&gt;
E2 -&amp;gt; F1;&lt;br /&gt;
F1 -&amp;gt; {G1 G2 G3 G4};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= GDS =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G3&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;[Product]\nAquaduck Tours Surfers Paradise&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;[Product Type]\n11:15am Tour&amp;quot;];&lt;br /&gt;
B2 [label=&amp;quot;[Product Type]\n01:45pm Tour&amp;quot;];&lt;br /&gt;
B3 [label=&amp;quot;[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;[Product Option &amp;amp; Date]\nAdult @ 2019-07-03\n38.49 AUD&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;[Product Option &amp;amp; Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD&amp;quot;];&lt;br /&gt;
C3 [label=&amp;quot;[Product Option &amp;amp; Date]\nStudent @ 2019-07-11\n25.49 AUD&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; {B1 B2 B3};&lt;br /&gt;
B1 -&amp;gt; {C1 C2 C3};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Geomancer  =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G2&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=BT;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;鄉民風水師\nWeb&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;鄉民風水師\nAndroid&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;鬼島圖磚&amp;quot;];&lt;br /&gt;
B4 [label=&amp;quot;Vue 2.x&amp;quot;];&lt;br /&gt;
B5 [label=&amp;quot;Mapsforge\nAndroid&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;凶宅資料\nGeoJSON&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;凶宅資料\nSQLite 3&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_convertion {&lt;br /&gt;
  label=&amp;quot;定時自動化處理&amp;quot;;&lt;br /&gt;
  B2 [label=&amp;quot;Mapsforge 轉檔&amp;quot;];&lt;br /&gt;
  B3 [label=&amp;quot;OSM 圖資同步&amp;quot;];&lt;br /&gt;
  C3 [label=&amp;quot;台灣 OSM 圖資&amp;quot;];&lt;br /&gt;
  C4 [label=&amp;quot;海岸線圖資&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
B1 -&amp;gt; A1;&lt;br /&gt;
B2 -&amp;gt; A2;&lt;br /&gt;
B3 -&amp;gt; B2;&lt;br /&gt;
B2 -&amp;gt; B1;&lt;br /&gt;
B4 -&amp;gt; A1;&lt;br /&gt;
B5 -&amp;gt; A2;&lt;br /&gt;
&lt;br /&gt;
C1 -&amp;gt; A1;&lt;br /&gt;
C2 -&amp;gt; A2;&lt;br /&gt;
{C3 C4} -&amp;gt; B3;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Sandbox =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G1&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Download taiwan-YYYYMMDD.osm.pbf\nfrom http://download.geofabrik.de&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Download land-polygons-split-4326\nfrom http://data.openstreetmapdata.com&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Clip land-polygons-taiwan.shp&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Convert to land-polygons-taiwan.osm&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.osm.pbf&amp;quot;];&lt;br /&gt;
F [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.map &amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;ogr2ogr (gdal)&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;python3 shp2osm.py&amp;quot;];&lt;br /&gt;
{A D} -&amp;gt; E [xlabel=&amp;quot;osmosis&amp;quot;];&lt;br /&gt;
E -&amp;gt; F [xlabel=&amp;quot;osmosis with mapsforge writer&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3842</id>
		<title>Test QuickGV</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3842"/>
		<updated>2026-10-06T07:12:18Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;main&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A --&amp;gt; B1&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 認知負荷 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;cognitive-load&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  ((認知負荷))&lt;br /&gt;
    ((熟能生巧&amp;lt;br&amp;gt;有效認知負荷&amp;lt;br&amp;gt;germane))&lt;br /&gt;
      --&amp;gt; 數學解題突破盲腸&lt;br /&gt;
      --&amp;gt; 游泳換氣成功了&lt;br /&gt;
      --&amp;gt; 繞口令不吃螺絲&lt;br /&gt;
    ((錯綜複雜&amp;lt;br&amp;gt;內在認知負荷&amp;lt;br&amp;gt;intrinsic))&lt;br /&gt;
      --&amp;gt; 教材太難, 越級打怪&lt;br /&gt;
      --&amp;gt; 基礎知識沒學好&lt;br /&gt;
    ((莫名其妙&amp;lt;br&amp;gt;外在認知負荷&amp;lt;br&amp;gt;extraneous))&lt;br /&gt;
      --&amp;gt; 教材太多雜訊&lt;br /&gt;
      --&amp;gt; 光罰寫就寫不完&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Colored Edge =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;colored-edge&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A1([&amp;quot;👩🏻‍💻 Human&amp;quot;])&lt;br /&gt;
  A2([&amp;quot;🤖 Agent&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
  B1(&amp;quot;HTTP&amp;lt;br&amp;gt;(Fiber v3)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  subgraph backend handlers  &lt;br /&gt;
    B2(&amp;quot;API handler&amp;quot;)&lt;br /&gt;
    B3(&amp;quot;MCP HTTP&amp;quot;)&lt;br /&gt;
    B4(&amp;quot;Streamable Handler&amp;quot;)&lt;br /&gt;
    B5(&amp;quot;SSE handler&amp;quot;)&lt;br /&gt;
    B6(&amp;quot;MCP Server&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph backend services&lt;br /&gt;
    C1(Mermaid to SVG)&lt;br /&gt;
    C2(Mermaid to PNG)&lt;br /&gt;
    C3(XML Formatter)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph frontend&lt;br /&gt;
    B7(&amp;quot;Nuxt.js&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph resources&lt;br /&gt;
    D1(Mermaid Container&amp;lt;br&amp;gt;yuzutech/kroki-mermaid)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% human path&lt;br /&gt;
  A1 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |the rest URI| B7&lt;br /&gt;
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% agent path&lt;br /&gt;
  A2 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |/mcp or /sse| B3&lt;br /&gt;
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% api path&lt;br /&gt;
  B7 --&amp;gt; |axios| B1&lt;br /&gt;
  B1 --&amp;gt; |/api| B2&lt;br /&gt;
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  B3 --&amp;gt; |/mcp| B4&lt;br /&gt;
  B3 --&amp;gt; |/sse| B5&lt;br /&gt;
  B4 &amp;amp; B5 --&amp;gt; B6&lt;br /&gt;
  B6 --&amp;gt; C1 &amp;amp; C2 &amp;amp; C3&lt;br /&gt;
  B2 --&amp;gt; D1&lt;br /&gt;
  C1 &amp;amp; C2 --&amp;gt; D1&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dish =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;dish&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  A[Dish]&lt;br /&gt;
    B1[Sauce Dish]&lt;br /&gt;
    B2[Shark&#039;s Fin Soup Dish]&lt;br /&gt;
    B3[Divided Dish]&lt;br /&gt;
    B4[Cassesrole Dish]&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MMD =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;testmmd&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Root(&amp;quot;規則動詞變化&amp;lt;br&amp;gt;(play)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Root --&amp;gt; Past(&amp;quot;過去&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Pres(&amp;quot;現在&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Fut(&amp;quot;未來&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Past --&amp;gt; P1(&amp;quot;過去普通: played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P2(&amp;quot;過去進行: was/were playing&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P3(&amp;quot;過去完成: had played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P4(&amp;quot;過去被動: was/were played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Pres --&amp;gt; R1(&amp;quot;現在普通: play / plays&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R2(&amp;quot;現在進行: am/is/are playing&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R3(&amp;quot;現在完成: have/has played&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R4(&amp;quot;現在被動: am/is/are played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Fut --&amp;gt; F1(&amp;quot;未來普通: will play&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F2(&amp;quot;未來進行: will be playing&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F3(&amp;quot;未來完成: will have played&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F4(&amp;quot;未來被動: will be played&amp;quot;)&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= WebSocket Service =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;123&amp;quot; theme=&amp;quot;warm&amp;quot; usage=&amp;quot;ram&amp;quot;&amp;gt;&lt;br /&gt;
subgraph cluster_client {&lt;br /&gt;
  label=&amp;quot;WebSocket Client&amp;quot;&lt;br /&gt;
  c1[label=&amp;quot;var ws = new WebSocket(&#039;/foo&#039;)&amp;quot;];&lt;br /&gt;
  c2[label=&amp;quot;ws.onerror = function (ev) ...&amp;quot;];&lt;br /&gt;
  c3[label=&amp;quot;ws.onopen = function (ev) ...&amp;quot;];&lt;br /&gt;
  c4[label=&amp;quot;ws.onmessage = function (ev) ...&amp;quot;];&lt;br /&gt;
  c5[label=&amp;quot;ws.send()&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_server {&lt;br /&gt;
  label=&amp;quot;&amp;quot;;&lt;br /&gt;
  s[label=&amp;quot;Service Unit | &amp;lt;rh&amp;gt; Request Handler | &amp;lt;ph&amp;gt; Push Handler | &amp;lt;pw&amp;gt; Push Worker | &amp;lt;mh&amp;gt; Message Handler | &amp;lt;mw&amp;gt; Message Worker&amp;quot;];&lt;br /&gt;
  iq[label=&amp;quot;Inbound Queue&amp;quot;];&lt;br /&gt;
  oq[label=&amp;quot;Outbound Queue&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
c1 -&amp;gt; s:rh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
c2 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c3 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c4 -&amp;gt; s:ph [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:ph -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:pw -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
c5 -&amp;gt; s:mh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mh -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mw -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= testflow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G51&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;五環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Development\n測試模擬交易&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Staging\n測試真實交易&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Sandbox\n供分銷商測試&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Production\n實際營運&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B;&lt;br /&gt;
B -&amp;gt; C;&lt;br /&gt;
B -&amp;gt; D;&lt;br /&gt;
C -&amp;gt; E;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G52&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;三環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Sandbox\n升級新功能&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Production\n升級新功能&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B -&amp;gt; C;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Crawling Flow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G4&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;Website&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;Proxy Server&amp;quot;];&lt;br /&gt;
A3 [label=&amp;quot;Daily Cache&amp;quot;];&lt;br /&gt;
A4 [label=&amp;quot;Hash Cache&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B [label=&amp;quot;Requests Session&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Crawler&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
D1 [label=&amp;quot;BeautifulSoup\n(HTML)&amp;quot;];&lt;br /&gt;
D2 [label=&amp;quot;json\n(JSON)&amp;quot;];&lt;br /&gt;
D3 [label=&amp;quot;Pandas\n(CSV)&amp;quot;];&lt;br /&gt;
D4 [label=&amp;quot;Custom Datasource&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
E1 [label=&amp;quot;Handler&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
E2 [label=&amp;quot;Models&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
F1 [label=&amp;quot;SQLAlchemy&amp;quot;];&lt;br /&gt;
F2 [label=&amp;quot;Console&amp;quot;];&lt;br /&gt;
F3 [label=&amp;quot;GeoJSON&amp;quot;];&lt;br /&gt;
F4 [label=&amp;quot;Elastic Search&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
G1 [label=&amp;quot;SQLite&amp;quot;];&lt;br /&gt;
G2 [label=&amp;quot;PostgreSQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G3 [label=&amp;quot;MySQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G4 [label=&amp;quot;MongoDB&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A1 -&amp;gt; A2;&lt;br /&gt;
{A1 A2} -&amp;gt; B;&lt;br /&gt;
{B A3 A4} -&amp;gt; C;&lt;br /&gt;
C -&amp;gt; {D1 D2 D3 D4} -&amp;gt; E1 -&amp;gt; {F1 F2 F3 F4};&lt;br /&gt;
E2 -&amp;gt; F1;&lt;br /&gt;
F1 -&amp;gt; {G1 G2 G3 G4};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= GDS =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G3&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;[Product]\nAquaduck Tours Surfers Paradise&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;[Product Type]\n11:15am Tour&amp;quot;];&lt;br /&gt;
B2 [label=&amp;quot;[Product Type]\n01:45pm Tour&amp;quot;];&lt;br /&gt;
B3 [label=&amp;quot;[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;[Product Option &amp;amp; Date]\nAdult @ 2019-07-03\n38.49 AUD&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;[Product Option &amp;amp; Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD&amp;quot;];&lt;br /&gt;
C3 [label=&amp;quot;[Product Option &amp;amp; Date]\nStudent @ 2019-07-11\n25.49 AUD&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; {B1 B2 B3};&lt;br /&gt;
B1 -&amp;gt; {C1 C2 C3};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Geomancer  =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G2&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=BT;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;鄉民風水師\nWeb&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;鄉民風水師\nAndroid&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;鬼島圖磚&amp;quot;];&lt;br /&gt;
B4 [label=&amp;quot;Vue 2.x&amp;quot;];&lt;br /&gt;
B5 [label=&amp;quot;Mapsforge\nAndroid&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;凶宅資料\nGeoJSON&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;凶宅資料\nSQLite 3&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_convertion {&lt;br /&gt;
  label=&amp;quot;定時自動化處理&amp;quot;;&lt;br /&gt;
  B2 [label=&amp;quot;Mapsforge 轉檔&amp;quot;];&lt;br /&gt;
  B3 [label=&amp;quot;OSM 圖資同步&amp;quot;];&lt;br /&gt;
  C3 [label=&amp;quot;台灣 OSM 圖資&amp;quot;];&lt;br /&gt;
  C4 [label=&amp;quot;海岸線圖資&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
B1 -&amp;gt; A1;&lt;br /&gt;
B2 -&amp;gt; A2;&lt;br /&gt;
B3 -&amp;gt; B2;&lt;br /&gt;
B2 -&amp;gt; B1;&lt;br /&gt;
B4 -&amp;gt; A1;&lt;br /&gt;
B5 -&amp;gt; A2;&lt;br /&gt;
&lt;br /&gt;
C1 -&amp;gt; A1;&lt;br /&gt;
C2 -&amp;gt; A2;&lt;br /&gt;
{C3 C4} -&amp;gt; B3;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Sandbox =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G1&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Download taiwan-YYYYMMDD.osm.pbf\nfrom http://download.geofabrik.de&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Download land-polygons-split-4326\nfrom http://data.openstreetmapdata.com&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Clip land-polygons-taiwan.shp&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Convert to land-polygons-taiwan.osm&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.osm.pbf&amp;quot;];&lt;br /&gt;
F [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.map &amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;ogr2ogr (gdal)&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;python3 shp2osm.py&amp;quot;];&lt;br /&gt;
{A D} -&amp;gt; E [xlabel=&amp;quot;osmosis&amp;quot;];&lt;br /&gt;
E -&amp;gt; F [xlabel=&amp;quot;osmosis with mapsforge writer&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3841</id>
		<title>Test QuickGV</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3841"/>
		<updated>2026-10-06T07:03:00Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;main&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A --&amp;gt; B&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 認知負荷 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;cognitive-load&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  ((認知負荷))&lt;br /&gt;
    ((熟能生巧&amp;lt;br&amp;gt;有效認知負荷&amp;lt;br&amp;gt;germane))&lt;br /&gt;
      --&amp;gt; 數學解題突破盲腸&lt;br /&gt;
      --&amp;gt; 游泳換氣成功了&lt;br /&gt;
      --&amp;gt; 繞口令不吃螺絲&lt;br /&gt;
    ((錯綜複雜&amp;lt;br&amp;gt;內在認知負荷&amp;lt;br&amp;gt;intrinsic))&lt;br /&gt;
      --&amp;gt; 教材太難, 越級打怪&lt;br /&gt;
      --&amp;gt; 基礎知識沒學好&lt;br /&gt;
    ((莫名其妙&amp;lt;br&amp;gt;外在認知負荷&amp;lt;br&amp;gt;extraneous))&lt;br /&gt;
      --&amp;gt; 教材太多雜訊&lt;br /&gt;
      --&amp;gt; 光罰寫就寫不完&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Colored Edge =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;colored-edge&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A1([&amp;quot;👩🏻‍💻 Human&amp;quot;])&lt;br /&gt;
  A2([&amp;quot;🤖 Agent&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
  B1(&amp;quot;HTTP&amp;lt;br&amp;gt;(Fiber v3)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  subgraph backend handlers  &lt;br /&gt;
    B2(&amp;quot;API handler&amp;quot;)&lt;br /&gt;
    B3(&amp;quot;MCP HTTP&amp;quot;)&lt;br /&gt;
    B4(&amp;quot;Streamable Handler&amp;quot;)&lt;br /&gt;
    B5(&amp;quot;SSE handler&amp;quot;)&lt;br /&gt;
    B6(&amp;quot;MCP Server&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph backend services&lt;br /&gt;
    C1(Mermaid to SVG)&lt;br /&gt;
    C2(Mermaid to PNG)&lt;br /&gt;
    C3(XML Formatter)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph frontend&lt;br /&gt;
    B7(&amp;quot;Nuxt.js&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph resources&lt;br /&gt;
    D1(Mermaid Container&amp;lt;br&amp;gt;yuzutech/kroki-mermaid)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% human path&lt;br /&gt;
  A1 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |the rest URI| B7&lt;br /&gt;
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% agent path&lt;br /&gt;
  A2 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |/mcp or /sse| B3&lt;br /&gt;
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% api path&lt;br /&gt;
  B7 --&amp;gt; |axios| B1&lt;br /&gt;
  B1 --&amp;gt; |/api| B2&lt;br /&gt;
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  B3 --&amp;gt; |/mcp| B4&lt;br /&gt;
  B3 --&amp;gt; |/sse| B5&lt;br /&gt;
  B4 &amp;amp; B5 --&amp;gt; B6&lt;br /&gt;
  B6 --&amp;gt; C1 &amp;amp; C2 &amp;amp; C3&lt;br /&gt;
  B2 --&amp;gt; D1&lt;br /&gt;
  C1 &amp;amp; C2 --&amp;gt; D1&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dish =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;dish&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  A[Dish]&lt;br /&gt;
    B1[Sauce Dish]&lt;br /&gt;
    B2[Shark&#039;s Fin Soup Dish]&lt;br /&gt;
    B3[Divided Dish]&lt;br /&gt;
    B4[Cassesrole Dish]&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MMD =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;testmmd&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Root(&amp;quot;規則動詞變化&amp;lt;br&amp;gt;(play)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Root --&amp;gt; Past(&amp;quot;過去&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Pres(&amp;quot;現在&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Fut(&amp;quot;未來&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Past --&amp;gt; P1(&amp;quot;過去普通: played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P2(&amp;quot;過去進行: was/were playing&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P3(&amp;quot;過去完成: had played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P4(&amp;quot;過去被動: was/were played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Pres --&amp;gt; R1(&amp;quot;現在普通: play / plays&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R2(&amp;quot;現在進行: am/is/are playing&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R3(&amp;quot;現在完成: have/has played&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R4(&amp;quot;現在被動: am/is/are played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Fut --&amp;gt; F1(&amp;quot;未來普通: will play&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F2(&amp;quot;未來進行: will be playing&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F3(&amp;quot;未來完成: will have played&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F4(&amp;quot;未來被動: will be played&amp;quot;)&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= WebSocket Service =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;123&amp;quot; theme=&amp;quot;warm&amp;quot; usage=&amp;quot;ram&amp;quot;&amp;gt;&lt;br /&gt;
subgraph cluster_client {&lt;br /&gt;
  label=&amp;quot;WebSocket Client&amp;quot;&lt;br /&gt;
  c1[label=&amp;quot;var ws = new WebSocket(&#039;/foo&#039;)&amp;quot;];&lt;br /&gt;
  c2[label=&amp;quot;ws.onerror = function (ev) ...&amp;quot;];&lt;br /&gt;
  c3[label=&amp;quot;ws.onopen = function (ev) ...&amp;quot;];&lt;br /&gt;
  c4[label=&amp;quot;ws.onmessage = function (ev) ...&amp;quot;];&lt;br /&gt;
  c5[label=&amp;quot;ws.send()&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_server {&lt;br /&gt;
  label=&amp;quot;&amp;quot;;&lt;br /&gt;
  s[label=&amp;quot;Service Unit | &amp;lt;rh&amp;gt; Request Handler | &amp;lt;ph&amp;gt; Push Handler | &amp;lt;pw&amp;gt; Push Worker | &amp;lt;mh&amp;gt; Message Handler | &amp;lt;mw&amp;gt; Message Worker&amp;quot;];&lt;br /&gt;
  iq[label=&amp;quot;Inbound Queue&amp;quot;];&lt;br /&gt;
  oq[label=&amp;quot;Outbound Queue&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
c1 -&amp;gt; s:rh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
c2 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c3 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c4 -&amp;gt; s:ph [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:ph -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:pw -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
c5 -&amp;gt; s:mh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mh -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mw -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= testflow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G51&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;五環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Development\n測試模擬交易&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Staging\n測試真實交易&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Sandbox\n供分銷商測試&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Production\n實際營運&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B;&lt;br /&gt;
B -&amp;gt; C;&lt;br /&gt;
B -&amp;gt; D;&lt;br /&gt;
C -&amp;gt; E;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G52&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;三環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Sandbox\n升級新功能&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Production\n升級新功能&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B -&amp;gt; C;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Crawling Flow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G4&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;Website&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;Proxy Server&amp;quot;];&lt;br /&gt;
A3 [label=&amp;quot;Daily Cache&amp;quot;];&lt;br /&gt;
A4 [label=&amp;quot;Hash Cache&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B [label=&amp;quot;Requests Session&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Crawler&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
D1 [label=&amp;quot;BeautifulSoup\n(HTML)&amp;quot;];&lt;br /&gt;
D2 [label=&amp;quot;json\n(JSON)&amp;quot;];&lt;br /&gt;
D3 [label=&amp;quot;Pandas\n(CSV)&amp;quot;];&lt;br /&gt;
D4 [label=&amp;quot;Custom Datasource&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
E1 [label=&amp;quot;Handler&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
E2 [label=&amp;quot;Models&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
F1 [label=&amp;quot;SQLAlchemy&amp;quot;];&lt;br /&gt;
F2 [label=&amp;quot;Console&amp;quot;];&lt;br /&gt;
F3 [label=&amp;quot;GeoJSON&amp;quot;];&lt;br /&gt;
F4 [label=&amp;quot;Elastic Search&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
G1 [label=&amp;quot;SQLite&amp;quot;];&lt;br /&gt;
G2 [label=&amp;quot;PostgreSQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G3 [label=&amp;quot;MySQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G4 [label=&amp;quot;MongoDB&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A1 -&amp;gt; A2;&lt;br /&gt;
{A1 A2} -&amp;gt; B;&lt;br /&gt;
{B A3 A4} -&amp;gt; C;&lt;br /&gt;
C -&amp;gt; {D1 D2 D3 D4} -&amp;gt; E1 -&amp;gt; {F1 F2 F3 F4};&lt;br /&gt;
E2 -&amp;gt; F1;&lt;br /&gt;
F1 -&amp;gt; {G1 G2 G3 G4};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= GDS =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G3&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;[Product]\nAquaduck Tours Surfers Paradise&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;[Product Type]\n11:15am Tour&amp;quot;];&lt;br /&gt;
B2 [label=&amp;quot;[Product Type]\n01:45pm Tour&amp;quot;];&lt;br /&gt;
B3 [label=&amp;quot;[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;[Product Option &amp;amp; Date]\nAdult @ 2019-07-03\n38.49 AUD&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;[Product Option &amp;amp; Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD&amp;quot;];&lt;br /&gt;
C3 [label=&amp;quot;[Product Option &amp;amp; Date]\nStudent @ 2019-07-11\n25.49 AUD&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; {B1 B2 B3};&lt;br /&gt;
B1 -&amp;gt; {C1 C2 C3};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Geomancer  =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G2&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=BT;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;鄉民風水師\nWeb&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;鄉民風水師\nAndroid&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;鬼島圖磚&amp;quot;];&lt;br /&gt;
B4 [label=&amp;quot;Vue 2.x&amp;quot;];&lt;br /&gt;
B5 [label=&amp;quot;Mapsforge\nAndroid&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;凶宅資料\nGeoJSON&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;凶宅資料\nSQLite 3&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_convertion {&lt;br /&gt;
  label=&amp;quot;定時自動化處理&amp;quot;;&lt;br /&gt;
  B2 [label=&amp;quot;Mapsforge 轉檔&amp;quot;];&lt;br /&gt;
  B3 [label=&amp;quot;OSM 圖資同步&amp;quot;];&lt;br /&gt;
  C3 [label=&amp;quot;台灣 OSM 圖資&amp;quot;];&lt;br /&gt;
  C4 [label=&amp;quot;海岸線圖資&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
B1 -&amp;gt; A1;&lt;br /&gt;
B2 -&amp;gt; A2;&lt;br /&gt;
B3 -&amp;gt; B2;&lt;br /&gt;
B2 -&amp;gt; B1;&lt;br /&gt;
B4 -&amp;gt; A1;&lt;br /&gt;
B5 -&amp;gt; A2;&lt;br /&gt;
&lt;br /&gt;
C1 -&amp;gt; A1;&lt;br /&gt;
C2 -&amp;gt; A2;&lt;br /&gt;
{C3 C4} -&amp;gt; B3;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Sandbox =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G1&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Download taiwan-YYYYMMDD.osm.pbf\nfrom http://download.geofabrik.de&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Download land-polygons-split-4326\nfrom http://data.openstreetmapdata.com&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Clip land-polygons-taiwan.shp&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Convert to land-polygons-taiwan.osm&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.osm.pbf&amp;quot;];&lt;br /&gt;
F [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.map &amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;ogr2ogr (gdal)&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;python3 shp2osm.py&amp;quot;];&lt;br /&gt;
{A D} -&amp;gt; E [xlabel=&amp;quot;osmosis&amp;quot;];&lt;br /&gt;
E -&amp;gt; F [xlabel=&amp;quot;osmosis with mapsforge writer&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3840</id>
		<title>Test QuickGV</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Test_QuickGV&amp;diff=3840"/>
		<updated>2026-10-06T06:20:50Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Colored Edge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;main&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A --&amp;gt; B&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 認知負荷 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;cognitive-load&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  ((認知負荷))&lt;br /&gt;
    ((熟能生巧&amp;lt;br&amp;gt;有效認知負荷&amp;lt;br&amp;gt;germane))&lt;br /&gt;
      --&amp;gt; 數學解題突破盲腸&lt;br /&gt;
      --&amp;gt; 游泳換氣成功了&lt;br /&gt;
      --&amp;gt; 繞口令不吃螺絲&lt;br /&gt;
    ((錯綜複雜&amp;lt;br&amp;gt;內在認知負荷&amp;lt;br&amp;gt;intrinsic))&lt;br /&gt;
      --&amp;gt; 教材太難, 越級打怪&lt;br /&gt;
      --&amp;gt; 基礎知識沒學好&lt;br /&gt;
    ((莫名其妙&amp;lt;br&amp;gt;外在認知負荷&amp;lt;br&amp;gt;extraneous))&lt;br /&gt;
      --&amp;gt; 教材太多雜訊&lt;br /&gt;
      --&amp;gt; 光罰寫就寫不完&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Colored Edge =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;colored-edge&amp;quot; dump-env=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
flowchart TD&lt;br /&gt;
  A1([&amp;quot;👩🏻‍💻 Human&amp;quot;])&lt;br /&gt;
  A2([&amp;quot;🤖 Agent&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
  B1(&amp;quot;HTTP&amp;lt;br&amp;gt;(Fiber v3)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  subgraph backend handlers  &lt;br /&gt;
    B2(&amp;quot;API handler&amp;quot;)&lt;br /&gt;
    B3(&amp;quot;MCP HTTP&amp;quot;)&lt;br /&gt;
    B4(&amp;quot;Streamable Handler&amp;quot;)&lt;br /&gt;
    B5(&amp;quot;SSE handler&amp;quot;)&lt;br /&gt;
    B6(&amp;quot;MCP Server&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph backend services&lt;br /&gt;
    C1(Mermaid to SVG)&lt;br /&gt;
    C2(Mermaid to PNG)&lt;br /&gt;
    C3(XML Formatter)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph frontend&lt;br /&gt;
    B7(&amp;quot;Nuxt.js&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph resources&lt;br /&gt;
    D1(Mermaid Container&amp;lt;br&amp;gt;yuzutech/kroki-mermaid)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% human path&lt;br /&gt;
  A1 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |the rest URI| B7&lt;br /&gt;
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% agent path&lt;br /&gt;
  A2 --&amp;gt; B1&lt;br /&gt;
  B1 --&amp;gt; |/mcp or /sse| B3&lt;br /&gt;
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  %% api path&lt;br /&gt;
  B7 --&amp;gt; |axios| B1&lt;br /&gt;
  B1 --&amp;gt; |/api| B2&lt;br /&gt;
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px&lt;br /&gt;
&lt;br /&gt;
  B3 --&amp;gt; |/mcp| B4&lt;br /&gt;
  B3 --&amp;gt; |/sse| B5&lt;br /&gt;
  B4 &amp;amp; B5 --&amp;gt; B6&lt;br /&gt;
  B6 --&amp;gt; C1 &amp;amp; C2 &amp;amp; C3&lt;br /&gt;
  B2 --&amp;gt; D1&lt;br /&gt;
  C1 &amp;amp; C2 --&amp;gt; D1&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Dish =&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;dish&amp;quot;&amp;gt;&lt;br /&gt;
mindmap&lt;br /&gt;
  A[Dish]&lt;br /&gt;
    B1[Sauce Dish]&lt;br /&gt;
    B2[Shark&#039;s Fin Soup Dish]&lt;br /&gt;
    B3[Divided Dish]&lt;br /&gt;
    B4[Cassesrole Dish]&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MMD =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickmmd name=&amp;quot;testmmd&amp;quot;&amp;gt;&lt;br /&gt;
flowchart LR&lt;br /&gt;
    Root(&amp;quot;規則動詞變化&amp;lt;br&amp;gt;(play)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Root --&amp;gt; Past(&amp;quot;過去&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Pres(&amp;quot;現在&amp;quot;)&lt;br /&gt;
    Root --&amp;gt; Fut(&amp;quot;未來&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Past --&amp;gt; P1(&amp;quot;過去普通: played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P2(&amp;quot;過去進行: was/were playing&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P3(&amp;quot;過去完成: had played&amp;quot;)&lt;br /&gt;
    Past --&amp;gt; P4(&amp;quot;過去被動: was/were played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Pres --&amp;gt; R1(&amp;quot;現在普通: play / plays&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R2(&amp;quot;現在進行: am/is/are playing&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R3(&amp;quot;現在完成: have/has played&amp;quot;)&lt;br /&gt;
    Pres --&amp;gt; R4(&amp;quot;現在被動: am/is/are played&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Fut --&amp;gt; F1(&amp;quot;未來普通: will play&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F2(&amp;quot;未來進行: will be playing&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F3(&amp;quot;未來完成: will have played&amp;quot;)&lt;br /&gt;
    Fut --&amp;gt; F4(&amp;quot;未來被動: will be played&amp;quot;)&lt;br /&gt;
&amp;lt;/quickmmd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= WebSocket Service =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;123&amp;quot; theme=&amp;quot;warm&amp;quot; usage=&amp;quot;ram&amp;quot;&amp;gt;&lt;br /&gt;
subgraph cluster_client {&lt;br /&gt;
  label=&amp;quot;WebSocket Client&amp;quot;&lt;br /&gt;
  c1[label=&amp;quot;var ws = new WebSocket(&#039;/foo&#039;)&amp;quot;];&lt;br /&gt;
  c2[label=&amp;quot;ws.onerror = function (ev) ...&amp;quot;];&lt;br /&gt;
  c3[label=&amp;quot;ws.onopen = function (ev) ...&amp;quot;];&lt;br /&gt;
  c4[label=&amp;quot;ws.onmessage = function (ev) ...&amp;quot;];&lt;br /&gt;
  c5[label=&amp;quot;ws.send()&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_server {&lt;br /&gt;
  label=&amp;quot;&amp;quot;;&lt;br /&gt;
  s[label=&amp;quot;Service Unit | &amp;lt;rh&amp;gt; Request Handler | &amp;lt;ph&amp;gt; Push Handler | &amp;lt;pw&amp;gt; Push Worker | &amp;lt;mh&amp;gt; Message Handler | &amp;lt;mw&amp;gt; Message Worker&amp;quot;];&lt;br /&gt;
  iq[label=&amp;quot;Inbound Queue&amp;quot;];&lt;br /&gt;
  oq[label=&amp;quot;Outbound Queue&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
c1 -&amp;gt; s:rh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
c2 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c3 -&amp;gt; s:rh [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
c4 -&amp;gt; s:ph [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:ph -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
s:pw -&amp;gt; oq [color=&amp;quot;#0000ff&amp;quot;];&lt;br /&gt;
c5 -&amp;gt; s:mh [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mh -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;];&lt;br /&gt;
s:mw -&amp;gt; iq [color=&amp;quot;#ff0000&amp;quot;,dir=&amp;quot;back&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= testflow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G51&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;五環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Development\n測試模擬交易&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Staging\n測試真實交易&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Sandbox\n供分銷商測試&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Production\n實際營運&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B;&lt;br /&gt;
B -&amp;gt; C;&lt;br /&gt;
B -&amp;gt; D;&lt;br /&gt;
C -&amp;gt; E;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G52&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
label=&amp;quot;三環境佈署流程&amp;quot;;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Local\n開發新功能&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Sandbox\n升級新功能&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Production\n升級新功能&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; B -&amp;gt; C;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Crawling Flow =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G4&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;Website&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;Proxy Server&amp;quot;];&lt;br /&gt;
A3 [label=&amp;quot;Daily Cache&amp;quot;];&lt;br /&gt;
A4 [label=&amp;quot;Hash Cache&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B [label=&amp;quot;Requests Session&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Crawler&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
D1 [label=&amp;quot;BeautifulSoup\n(HTML)&amp;quot;];&lt;br /&gt;
D2 [label=&amp;quot;json\n(JSON)&amp;quot;];&lt;br /&gt;
D3 [label=&amp;quot;Pandas\n(CSV)&amp;quot;];&lt;br /&gt;
D4 [label=&amp;quot;Custom Datasource&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
E1 [label=&amp;quot;Handler&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
E2 [label=&amp;quot;Models&amp;quot;, fillcolor=&amp;quot;#ffffff:#00c000&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
F1 [label=&amp;quot;SQLAlchemy&amp;quot;];&lt;br /&gt;
F2 [label=&amp;quot;Console&amp;quot;];&lt;br /&gt;
F3 [label=&amp;quot;GeoJSON&amp;quot;];&lt;br /&gt;
F4 [label=&amp;quot;Elastic Search&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
G1 [label=&amp;quot;SQLite&amp;quot;];&lt;br /&gt;
G2 [label=&amp;quot;PostgreSQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G3 [label=&amp;quot;MySQL&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
G4 [label=&amp;quot;MongoDB&amp;quot;, fillcolor=&amp;quot;#ffffff:#aaaaaa&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A1 -&amp;gt; A2;&lt;br /&gt;
{A1 A2} -&amp;gt; B;&lt;br /&gt;
{B A3 A4} -&amp;gt; C;&lt;br /&gt;
C -&amp;gt; {D1 D2 D3 D4} -&amp;gt; E1 -&amp;gt; {F1 F2 F3 F4};&lt;br /&gt;
E2 -&amp;gt; F1;&lt;br /&gt;
F1 -&amp;gt; {G1 G2 G3 G4};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= GDS =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G3&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;[Product]\nAquaduck Tours Surfers Paradise&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;[Product Type]\n11:15am Tour&amp;quot;];&lt;br /&gt;
B2 [label=&amp;quot;[Product Type]\n01:45pm Tour&amp;quot;];&lt;br /&gt;
B3 [label=&amp;quot;[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;[Product Option &amp;amp; Date]\nAdult @ 2019-07-03\n38.49 AUD&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;[Product Option &amp;amp; Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD&amp;quot;];&lt;br /&gt;
C3 [label=&amp;quot;[Product Option &amp;amp; Date]\nStudent @ 2019-07-11\n25.49 AUD&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; {B1 B2 B3};&lt;br /&gt;
B1 -&amp;gt; {C1 C2 C3};&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Geomancer  =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G2&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=BT;&lt;br /&gt;
&lt;br /&gt;
A1 [label=&amp;quot;鄉民風水師\nWeb&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
A2 [label=&amp;quot;鄉民風水師\nAndroid&amp;quot;,fillcolor=&amp;quot;#ffffff:#70e070&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B1 [label=&amp;quot;鬼島圖磚&amp;quot;];&lt;br /&gt;
B4 [label=&amp;quot;Vue 2.x&amp;quot;];&lt;br /&gt;
B5 [label=&amp;quot;Mapsforge\nAndroid&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
C1 [label=&amp;quot;凶宅資料\nGeoJSON&amp;quot;];&lt;br /&gt;
C2 [label=&amp;quot;凶宅資料\nSQLite 3&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
subgraph cluster_convertion {&lt;br /&gt;
  label=&amp;quot;定時自動化處理&amp;quot;;&lt;br /&gt;
  B2 [label=&amp;quot;Mapsforge 轉檔&amp;quot;];&lt;br /&gt;
  B3 [label=&amp;quot;OSM 圖資同步&amp;quot;];&lt;br /&gt;
  C3 [label=&amp;quot;台灣 OSM 圖資&amp;quot;];&lt;br /&gt;
  C4 [label=&amp;quot;海岸線圖資&amp;quot;];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
B1 -&amp;gt; A1;&lt;br /&gt;
B2 -&amp;gt; A2;&lt;br /&gt;
B3 -&amp;gt; B2;&lt;br /&gt;
B2 -&amp;gt; B1;&lt;br /&gt;
B4 -&amp;gt; A1;&lt;br /&gt;
B5 -&amp;gt; A2;&lt;br /&gt;
&lt;br /&gt;
C1 -&amp;gt; A1;&lt;br /&gt;
C2 -&amp;gt; A2;&lt;br /&gt;
{C3 C4} -&amp;gt; B3;&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Sandbox =&lt;br /&gt;
&amp;lt;quickgv name=&amp;quot;G1&amp;quot; theme=&amp;quot;warm&amp;quot;&amp;gt;&lt;br /&gt;
rankdir=TB;&lt;br /&gt;
&lt;br /&gt;
A [label=&amp;quot;Download taiwan-YYYYMMDD.osm.pbf\nfrom http://download.geofabrik.de&amp;quot;];&lt;br /&gt;
B [label=&amp;quot;Download land-polygons-split-4326\nfrom http://data.openstreetmapdata.com&amp;quot;];&lt;br /&gt;
C [label=&amp;quot;Clip land-polygons-taiwan.shp&amp;quot;];&lt;br /&gt;
D [label=&amp;quot;Convert to land-polygons-taiwan.osm&amp;quot;];&lt;br /&gt;
E [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.osm.pbf&amp;quot;];&lt;br /&gt;
F [label=&amp;quot;Convert to taiwan-merged-YYYYMMDD.map &amp;quot;];&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; C [xlabel=&amp;quot;ogr2ogr (gdal)&amp;quot;];&lt;br /&gt;
C -&amp;gt; D [xlabel=&amp;quot;python3 shp2osm.py&amp;quot;];&lt;br /&gt;
{A D} -&amp;gt; E [xlabel=&amp;quot;osmosis&amp;quot;];&lt;br /&gt;
E -&amp;gt; F [xlabel=&amp;quot;osmosis with mapsforge writer&amp;quot;];&lt;br /&gt;
&amp;lt;/quickgv&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3839</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3839"/>
		<updated>2026-10-06T02:21:59Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Clean build cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused images older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused containers, networks, images, and build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused Docker resources ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused resources including volumes ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a --volumes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clean Build Cache ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune -a -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean build cache older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show Docker disk usage ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system df&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build without using cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker compose build --no-cache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3838</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3838"/>
		<updated>2026-10-06T02:21:30Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused images older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused containers, networks, images, and build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused Docker resources ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused resources including volumes ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a --volumes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clean build cache ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune -a -f&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean build cache older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker builder prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Show Docker disk usage ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system df&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build without using cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker compose build --no-cache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3837</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3837"/>
		<updated>2026-10-06T02:10:07Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Clean Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused images older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused containers, networks, images, and build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused Docker resources ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused resources including volumes ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a --volumes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3836</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3836"/>
		<updated>2026-10-06T02:08:14Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Clean Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused images older than 30 days ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune -a --filter &amp;quot;until=720h&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused containers, networks, images, and build cache ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused Docker resources ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clean all unused resources including volumes ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker system prune -a --volumes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3835</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3835"/>
		<updated>2026-10-06T02:07:26Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🎯 Purpose || ⌨️ Command&lt;br /&gt;
|-&lt;br /&gt;
| Clean unused image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker image prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3834</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3834"/>
		<updated>2026-10-06T02:06:28Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Replaced content with &amp;quot;== Clean Images ==  sudo docker image prune&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Images ==&lt;br /&gt;
&lt;br /&gt;
sudo docker image prune&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3833</id>
		<title>Docker/Clean Unused</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Clean_Unused&amp;diff=3833"/>
		<updated>2026-10-06T02:03:29Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Created page with &amp;quot;== Clean Docker ==  {| class=&amp;quot;wikitable&amp;quot; ! TODO || Command |- | Run debian image on Windows || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; # Git Bash winpty docker run --name=debian0 -it debian:12  # Power Shell docker run --name=debian0 -it debian:12 &amp;lt;/syntaxhighlight&amp;gt; |- | Open shell of running container || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; docker exec -it mwdev-mediawiki-1 /bin/bash &amp;lt;/syntaxhighlight&amp;gt; |- | Copy file from running container || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; docker cp mwde...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3832</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3832"/>
		<updated>2026-10-06T02:03:17Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Clean Unused|Clean Unused]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Debugging|Debugging]]&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
docker --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3831</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3831"/>
		<updated>2026-10-06T02:03:01Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Clean Unused]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Debugging|Debugging]]&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
docker --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3830</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3830"/>
		<updated>2026-10-05T08:38:19Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | System Management&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Development&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | RDBMS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Full-text Search&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;System Management&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Useful Commands]]&lt;br /&gt;
* [[tmux]]&lt;br /&gt;
* [[Docker|Docker]]&lt;br /&gt;
* [[Services/Nginx|Nginx]]&lt;br /&gt;
* [[gcloud]]&lt;br /&gt;
* [[QEMU]]&lt;br /&gt;
* [[Network Config]]&lt;br /&gt;
* [[WSL]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display: none;&amp;quot;&amp;gt;Development&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Git]]&lt;br /&gt;
* [[Go]]&lt;br /&gt;
* [[Vue.js]]&lt;br /&gt;
* [[Node]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Android]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Editor]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;RDBMS&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SQL Commands]]&lt;br /&gt;
* [[DB Import &amp;amp; Export]]&lt;br /&gt;
* [[Migration]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Full-text Search&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* TODO&lt;br /&gt;
|-&lt;br /&gt;
! Data Visualization || OpenStreetMap || MediaWiki || Misc&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Data Visualization&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SVG]]&lt;br /&gt;
* D3.js&lt;br /&gt;
* Image Tools&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;OpenStreetMap&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* Mapsforge&lt;br /&gt;
* PostGIS&lt;br /&gt;
* Projection&lt;br /&gt;
* Map Conversion&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;MediaWiki&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Special:Version|Version]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Version_lifecycle Version Lifecycle]&lt;br /&gt;
* [[Migration tips]]&lt;br /&gt;
* [[Test QuickGV]]&lt;br /&gt;
* [[Test Math]]&lt;br /&gt;
* [[Test Template]]&lt;br /&gt;
* Build extension&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:RevisionDelete RevisionDelete]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Misc&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[LM]]&lt;br /&gt;
* [[Hardware Issue]]&lt;br /&gt;
* [[Linux Mirrors]]&lt;br /&gt;
* [[Graphviz]]&lt;br /&gt;
* [[macOS trouble shooting]]&lt;br /&gt;
* [[GCP]]&lt;br /&gt;
* [[SKCOM]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3829</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3829"/>
		<updated>2026-10-05T08:37:48Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🖼️ Image || 🐧 OS || 🔌 Expose || 💻 Shell Command&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || 80 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main bash&lt;br /&gt;
sudo docker exec -it mw-main -u www-data bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Debian || 8000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || 8002 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || 4000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || 5432 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3828</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3828"/>
		<updated>2026-10-05T08:05:22Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🖼️ Image || 🐧 OS || 🔌 Expose || 💻 Shell Command&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || 80 ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main bash&lt;br /&gt;
sudo docker exec -it mw-main -u www-data bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || 8000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || 8002 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || 4000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || 5432 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3827</id>
		<title>Docker/Debugging</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3827"/>
		<updated>2026-10-05T08:04:52Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main bash&lt;br /&gt;
sudo docker exec -it mw-main -u www-data bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3826</id>
		<title>Docker/Debugging</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3826"/>
		<updated>2026-10-05T08:03:47Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main bash&lt;br /&gt;
sudo docker exec -it mw-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3825</id>
		<title>Docker/Debugging</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Debugging&amp;diff=3825"/>
		<updated>2026-10-05T08:03:29Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; sudo docker exec -it mw-main sudo docker exec -it mw-main &amp;lt;/syntaxhighlight&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main&lt;br /&gt;
sudo docker exec -it mw-main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3824</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3824"/>
		<updated>2026-10-05T08:02:14Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Debugging|Debugging]]&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
docker --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3823</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3823"/>
		<updated>2026-10-05T06:58:49Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* MediaWiki */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | System Management&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Development&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | RDBMS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Full-text Search&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;System Management&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Useful Commands]]&lt;br /&gt;
* [[tmux]]&lt;br /&gt;
* [[Docker|Docker]]&lt;br /&gt;
* [[Services/Nginx|Nginx]]&lt;br /&gt;
* [[gcloud]]&lt;br /&gt;
* [[QEMU]]&lt;br /&gt;
* [[Network Config]]&lt;br /&gt;
* [[WSL]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display: none;&amp;quot;&amp;gt;Development&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Git]]&lt;br /&gt;
* [[Go]]&lt;br /&gt;
* [[Vue.js]]&lt;br /&gt;
* [[Node]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Android]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Editor]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;RDBMS&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SQL Commands]]&lt;br /&gt;
* [[DB Import &amp;amp; Export]]&lt;br /&gt;
* [[Migration]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Full-text Search&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* TODO&lt;br /&gt;
|-&lt;br /&gt;
! Data Visualization || OpenStreetMap || MediaWiki || Misc&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Data Visualization&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SVG]]&lt;br /&gt;
* D3.js&lt;br /&gt;
* Image Tools&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;OpenStreetMap&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* Mapsforge&lt;br /&gt;
* PostGIS&lt;br /&gt;
* Projection&lt;br /&gt;
* Map Conversion&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;MediaWiki&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Special:Version|Version]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Version_lifecycle Version Lifecycle]&lt;br /&gt;
* [[Migration tips]]&lt;br /&gt;
* [[Test QuickGV]]&lt;br /&gt;
* [[Test Math]]&lt;br /&gt;
* [[Test Template]]&lt;br /&gt;
* Build extension&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:RevisionDelete RevisionDelete]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Misc&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[LM]]&lt;br /&gt;
* [[Hardware Issue]]&lt;br /&gt;
* [[Linux Mirrors]]&lt;br /&gt;
* [[Graphviz]]&lt;br /&gt;
* [[macOS trouble shooting]]&lt;br /&gt;
* [[GCP]]&lt;br /&gt;
* [[SKCOM]]&lt;br /&gt;
* [[TOEIC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=LM/Qwen_3.8_27B&amp;diff=3822</id>
		<title>LM/Qwen 3.8 27B</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=LM/Qwen_3.8_27B&amp;diff=3822"/>
		<updated>2026-10-05T04:37:47Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* vLLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vLLM ==&lt;br /&gt;
&lt;br /&gt;
=== Optimize Model for B70 ===&lt;br /&gt;
&lt;br /&gt;
* Wrapzii/Swift-1.5-Qwen3.8-27b-GPTQ-Int4-baked-v1-embed-int8&lt;br /&gt;
* Launch80/Qwen3.8-27B-GPTQ-Int4-baked-v2&lt;br /&gt;
&lt;br /&gt;
=== Tested Models for B70 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! Model ID&lt;br /&gt;
! B70 loadable&lt;br /&gt;
! B70x1 tg128&lt;br /&gt;
! B70x2 tg128&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Launch80/Qwen3.8-27B-GPTQ-Int4-baked-v2&lt;br /&gt;
| ✅&lt;br /&gt;
| 68.68 t/s&lt;br /&gt;
| 86.86 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | johannrplaster/Qwen3.8-27B-Uncensored-int4-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 43.21 t/s&lt;br /&gt;
| 78.66 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | greglechin/Swift-1.5-Qwen3.8-27B-Uncensored-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
| ✅&lt;br /&gt;
| 47.17 t/s&lt;br /&gt;
| 76.21 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | [https://github.com/MikeCaldera/intel-arc-pro-b70-qwen38-vllm/blob/main/docs/B70-QUALITY-DEPLOYMENT.md mikeinnyc/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16]&lt;br /&gt;
| ✅&lt;br /&gt;
| 47.55 t/s&lt;br /&gt;
| 75.57 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | bjonor/Swift-1.5-Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
| ✅&lt;br /&gt;
| 50.56 t/s&lt;br /&gt;
| 75.42 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | [https://huggingface.co/SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16 SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16]&lt;br /&gt;
| ✅&lt;br /&gt;
| 39.87 t/s&lt;br /&gt;
| 74.91 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | cyankiwi/Qwen3.8-27B-AWQ-INT4&lt;br /&gt;
| ✅&lt;br /&gt;
| 37.71 t/s&lt;br /&gt;
| 74.01 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | kernelogic/Qwen3.8-27B-Uncensored-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
| ✅&lt;br /&gt;
| 49.29 t/s&lt;br /&gt;
| 72.63 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | bernhardbrieger/Qwen3.8-27B-GPTQ-Int4&lt;br /&gt;
| ✅&lt;br /&gt;
| 43.10 t/s&lt;br /&gt;
| 70.54 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | derikn/Qwen3.8-27B-AWQ-INT4&lt;br /&gt;
| ✅&lt;br /&gt;
| 52.82 t/s&lt;br /&gt;
| 68.32 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | ukisai/Swift-1.5-Qwen3.8-27b-INT4&lt;br /&gt;
| ✅&lt;br /&gt;
| 45.9 t/s&lt;br /&gt;
| 64.99 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | derikn/Qwen3.8-27B-TURBO-Fable-Cold-Fusion-735-882-Heretic-Uncensored-NM-DAU-AWQ-INT4&lt;br /&gt;
| ✅&lt;br /&gt;
| 45.66 t/s&lt;br /&gt;
| 64.28 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | cyankiwi/Swift-Qwen3.8-27B-AWQ-BF16-INT4&lt;br /&gt;
| ⚠️&lt;br /&gt;
| OOM&lt;br /&gt;
| 60.75 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | cyankiwi/Qwen3.8-27B-AWQ-BF16-INT4&lt;br /&gt;
| ⚠️&lt;br /&gt;
| OOM&lt;br /&gt;
| 58.97 t/s&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | ukisai/Swift-1.5-Qwen3.8-27b-W4A16-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 18.06 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | Frozenlock/Qwen3.8-27B-int4-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 17.50 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | CySpiegel/Qwen3.8-27B-Int4-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 17.44 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | MKRWW/Qwen3.8-27B-int4-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 14.66 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | devan-carlin/Qwen3.8-27B-int4-AutoRound&lt;br /&gt;
| ✅&lt;br /&gt;
| 10.87 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;left&amp;quot; | HaberstrohSystems/Qwen3.8-27B-int4-g128-sym-autoround&lt;br /&gt;
| ✅&lt;br /&gt;
| 10.47 t/s&lt;br /&gt;
| 🗑️&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wishlist Models ===&lt;br /&gt;
&lt;br /&gt;
* rwmacy/qwen3.8-27b-mtp-head-v8-b70&lt;br /&gt;
* arcitech-psp/Tiel-Coder-35B-A3B-W4A16-GPTQ-XPU-MTP&lt;br /&gt;
&lt;br /&gt;
=== hf operations ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# search latest vllm models&lt;br /&gt;
hf models ls --search &amp;quot;Qwen3.8 27B int4&amp;quot; --apps vllm --expand &amp;quot;downloads,likes,lastModified&amp;quot; --sort last_modified --no-truncate --no-gated --limit 25&lt;br /&gt;
hf models ls --search &amp;quot;Qwen3.8 27B autoround&amp;quot; --apps vllm --expand &amp;quot;downloads,likes,lastModified&amp;quot; --sort last_modified --no-truncate --no-gated --limit 25&lt;br /&gt;
hf models ls --search &amp;quot;Bonsai 2&amp;quot; --apps vllm --expand &amp;quot;downloads,likes,lastModified&amp;quot; --sort last_modified --no-truncate --no-gated --limit 25&lt;br /&gt;
&lt;br /&gt;
# SergiioB&lt;br /&gt;
hf models ls --tree -R -h SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
hf download SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
tree -h ~/.cache/huggingface/hub/models--SergiioB--Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== llama.cpp ==&lt;br /&gt;
&lt;br /&gt;
* https://unsloth.ai/docs/models/qwen3.8&lt;br /&gt;
* https://unsloth.ai/docs/basics/dynamic-3.0-ggufs&lt;br /&gt;
&lt;br /&gt;
=== Running ===&lt;br /&gt;
&lt;br /&gt;
The five options are important, especially &amp;lt;code&amp;gt;--chat-template-kwargs &#039;{&amp;quot;reasoning_effort&amp;quot;:&amp;quot;...&amp;quot;}&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The option &amp;lt;code&amp;gt;reasoning_effort&amp;lt;/code&amp;gt; can be set to &amp;lt;code&amp;gt;xhigh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;low&amp;lt;/code&amp;gt;, but &amp;lt;code&amp;gt;xhigh&amp;lt;/code&amp;gt; causes significant performance degradation.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;--temp 1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;--top-p 0.95&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;--top-k 20&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;--min-p 0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;--chat-template-kwargs &#039;{&amp;quot;reasoning_effort&amp;quot;:&amp;quot;low&amp;quot;}&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# works&lt;br /&gt;
llama-server -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL&lt;br /&gt;
  --spec-type draft-mtp --spec-draft-n-max 2 --spec-draft-p-min 0.7 -ngld 99&lt;br /&gt;
  -fa 1 -c 128000 -ctk f16 -ctv f16&lt;br /&gt;
  --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.0&lt;br /&gt;
  --chat-template-kwargs &#039;{&amp;quot;reasoning_effort&amp;quot;:&amp;quot;low&amp;quot;}&#039;&lt;br /&gt;
  -b 2048 -ub 1024&lt;br /&gt;
  -ngl 99 -np 1 -t 6&lt;br /&gt;
  --load-mode mlock --jinja --reasoning-preserve&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Benchmark for me ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# control group&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 1 -ctk q8_0 -ctv q8_0&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl | type_k | type_v |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | -----: | -----: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  99 |   q8_0 |   q8_0 |   1 |           pp512 |        951.05 ± 7.72 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  99 |   q8_0 |   q8_0 |   1 |           tg128 |         22.17 ± 0.06 |&lt;br /&gt;
&lt;br /&gt;
# Test -ctv q4_0&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 1 -ctk q8_0 -ctv q4_0&lt;br /&gt;
&lt;br /&gt;
# Test -ub 2048&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 1 -ctk q8_0 -ctv q8_0 -ub 2048&lt;br /&gt;
&lt;br /&gt;
# Test OpenVINO&lt;br /&gt;
GGML_OPENVINO_DEVICE=GPU GGML_OPENVINO_STATEFUL_EXECUTION=1 ./llama.cpp/openvino/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Benchmark for community ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;markdown&amp;quot;&amp;gt;&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q6_K -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_M -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_S -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_XL -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_XL -fa 1 -ctk q8_0 -ctv q8_0&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:Q4_0 -fa 0,1&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:Q4_0 -fa 1 -ctk q8_0 -ctv q8_0&lt;br /&gt;
./llama.cpp/sycl/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS -fa 0,1&lt;br /&gt;
&lt;br /&gt;
./llama.cpp/sycl-nodnn/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 0,1&lt;br /&gt;
./llama.cpp/sycl-nodnn/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:Q4_0 -fa 0,1&lt;br /&gt;
./llama.cpp/sycl-nodnn/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS -fa 0,1&lt;br /&gt;
&lt;br /&gt;
./llama.cpp/sycl-f32/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL -fa 0,1&lt;br /&gt;
./llama.cpp/sycl-f32/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:Q4_0 -fa 0,1&lt;br /&gt;
./llama.cpp/sycl-f32/bin/llama-bench -hf unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS -fa 0,1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## unsloth/Qwen3.8-27B-GGUF:UD-Q6_K&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q6_K                |  20.46 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        979.33 ± 4.64 |&lt;br /&gt;
| qwen35 27B Q6_K                |  20.46 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         21.25 ± 0.05 |&lt;br /&gt;
| qwen35 27B Q6_K                |  20.46 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        793.28 ± 1.67 |&lt;br /&gt;
| qwen35 27B Q6_K                |  20.46 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         21.15 ± 0.02 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        970.49 ± 3.90 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         22.30 ± 0.01 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        840.86 ± 4.11 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         22.22 ± 0.01 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_M&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  18.40 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |       858.88 ± 22.25 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  18.40 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         22.22 ± 0.03 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  18.40 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        815.38 ± 6.21 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  18.40 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         22.25 ± 0.05 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_S&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Small        |  17.37 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        914.77 ± 2.72 |&lt;br /&gt;
| qwen35 27B Q5_K - Small        |  17.37 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         22.40 ± 0.02 |&lt;br /&gt;
| qwen35 27B Q5_K - Small        |  17.37 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        845.78 ± 1.73 |&lt;br /&gt;
| qwen35 27B Q5_K - Small        |  17.37 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         22.33 ± 0.02 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:UD-Q4_K_XL&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q4_K - Medium       |  16.34 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        811.78 ± 1.40 |&lt;br /&gt;
| qwen35 27B Q4_K - Medium       |  16.34 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         21.39 ± 0.02 |&lt;br /&gt;
| qwen35 27B Q4_K - Medium       |  16.34 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        784.04 ± 1.72 |&lt;br /&gt;
| qwen35 27B Q4_K - Medium       |  16.34 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         21.33 ± 0.02 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:Q4_0&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        813.56 ± 1.92 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         27.48 ± 0.02 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        355.72 ± 0.43 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         27.37 ± 0.03 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        583.02 ± 0.61 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         16.40 ± 0.03 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        586.82 ± 0.83 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         16.34 ± 0.03 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 without DNN unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        948.86 ± 4.32 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         22.31 ± 0.03 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        791.62 ± 1.74 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         22.17 ± 0.02 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 without DNN unsloth/Qwen3.8-27B-GGUF:Q4_0&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        792.89 ± 2.42 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         27.53 ± 0.02 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        353.01 ± 1.91 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         27.36 ± 0.01 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F16 without DNN unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        571.95 ± 0.63 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         16.43 ± 0.04 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        560.78 ± 0.38 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         16.40 ± 0.01 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F32 unsloth/Qwen3.8-27B-GGUF:UD-Q5_K_XL&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        311.00 ± 0.43 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         22.26 ± 0.03 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        304.89 ± 0.13 |&lt;br /&gt;
| qwen35 27B Q5_K - Medium       |  19.43 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         22.17 ± 0.02 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F32 unsloth/Qwen3.8-27B-GGUF:Q4_0&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        239.50 ± 2.02 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         27.07 ± 0.04 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        270.79 ± 0.47 |&lt;br /&gt;
| qwen35 27B Q4_0                |  14.94 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         27.05 ± 0.05 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&lt;br /&gt;
## F32 unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS&lt;br /&gt;
&lt;br /&gt;
| model                          |       size |     params | backend    | ngl |  fa |            test |                  t/s |&lt;br /&gt;
| ------------------------------ | ---------: | ---------: | ---------- | --: | --: | --------------: | -------------------: |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           pp512 |        274.41 ± 0.40 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   0 |           tg128 |         16.51 ± 0.06 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           pp512 |        273.20 ± 0.13 |&lt;br /&gt;
| qwen35 27B IQ4_XS - 4.25 bpw   |  13.26 GiB |    27.32 B | SYCL       |  -1 |   1 |           tg128 |         16.42 ± 0.01 |&lt;br /&gt;
&lt;br /&gt;
build: 9723942ad (10711)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Experiment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# search&lt;br /&gt;
hf models ls --search &amp;quot;Qwen3.8-27B&amp;quot; --apps llama.cpp --expand &amp;quot;downloads,likes,lastModified&amp;quot; --sort downloads --no-truncate --limit 10&lt;br /&gt;
&lt;br /&gt;
# unsloth&lt;br /&gt;
hf models ls --tree -R -h unsloth/Qwen3.8-27B-GGUF&lt;br /&gt;
&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-IQ4_XS*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q4_K_XL*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q5_K_XL*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q6_K.gguf&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q6_K_M*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q6_K_L*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q6_K_XL*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*UD-Q8_K_L*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*Q4_0*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*Q8_0*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;mmproj-BF16*&amp;quot;&lt;br /&gt;
hf download unsloth/Qwen3.8-27B-GGUF --include &amp;quot;*mtp-Qwen3.8-27B-Q4_0.gguf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find ~/.cache/huggingface/hub -name &amp;quot;*Qwen3.8-27B-UD-Q8_K_L.gguf&amp;quot;&lt;br /&gt;
find ~/.cache/huggingface/hub -name &amp;quot;*Qwen3.8-27B-UD-Q8_K_L.gguf&amp;quot; -exec sh -c &#039;rm -f &amp;quot;$1&amp;quot; &amp;quot;$(readlink -f &amp;quot;$1&amp;quot;)&amp;quot;&#039; _ {} \;&lt;br /&gt;
&lt;br /&gt;
tree -h ~/.cache/huggingface/hub/models--unsloth--Qwen3.8-27B-GGUF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accuracy ==&lt;br /&gt;
&lt;br /&gt;
https://unsloth.ai/docs/~gitbook/image?url=https%3A%2F%2F3215535692-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FxhOjnexMCB3dmuQFQ2Zq%252Fuploads%252Fl9piThTmmUsePst5w3F2%252Fimage.png%3Falt%3Dmedia%26token%3D821e88e2-ad4e-40bf-adf2-e13837228e82&amp;amp;width=768&amp;amp;dpr=3&amp;amp;quality=100&amp;amp;sign=dd5f7cb5&amp;amp;sv=2&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3821</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3821"/>
		<updated>2026-10-05T03:57:52Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Ubuntu 26 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
docker --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3820</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3820"/>
		<updated>2026-10-05T03:57:20Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Ubuntu 26 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
docker --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install ca-certificates curl&lt;br /&gt;
sudo install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
sudo chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
sudo tee /etc/apt/sources.list.d/docker.sources &amp;lt;&amp;lt;EOF&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://download.docker.com/linux/ubuntu&lt;br /&gt;
Suites: $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;${UBUNTU_CODENAME:-$VERSION_CODENAME}&amp;quot;)&lt;br /&gt;
Components: stable&lt;br /&gt;
Architectures: $(dpkg --print-architecture)&lt;br /&gt;
Signed-By: /etc/apt/keyrings/docker.asc&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3819</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3819"/>
		<updated>2026-10-05T03:55:04Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Ubuntu 26 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com -o get-docker.sh&lt;br /&gt;
sudo sh get-docker.sh&lt;br /&gt;
&lt;br /&gt;
sudo sh get-docker.sh --dry-run&lt;br /&gt;
&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install ca-certificates curl&lt;br /&gt;
sudo install -m 0755 -d /etc/apt/keyrings&lt;br /&gt;
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc&lt;br /&gt;
sudo chmod a+r /etc/apt/keyrings/docker.asc&lt;br /&gt;
&lt;br /&gt;
sudo tee /etc/apt/sources.list.d/docker.sources &amp;lt;&amp;lt;EOF&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: https://download.docker.com/linux/ubuntu&lt;br /&gt;
Suites: $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;${UBUNTU_CODENAME:-$VERSION_CODENAME}&amp;quot;)&lt;br /&gt;
Components: stable&lt;br /&gt;
Architectures: $(dpkg --print-architecture)&lt;br /&gt;
Signed-By: /etc/apt/keyrings/docker.asc&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3818</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3818"/>
		<updated>2026-10-05T03:46:44Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 26 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3817</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3817"/>
		<updated>2026-10-05T03:46:21Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3816</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3816"/>
		<updated>2026-10-05T03:43:51Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Clean Docker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dockerfile Debugging ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3815</id>
		<title>Go/snap installation</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3815"/>
		<updated>2026-10-05T03:29:43Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* snap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== snap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo snap install go --classic&lt;br /&gt;
sudo snap list go&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3814</id>
		<title>Go/snap installation</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3814"/>
		<updated>2026-10-05T03:28:11Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* snap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== snap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo snap install go --classic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3813</id>
		<title>Go/snap installation</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Go/snap_installation&amp;diff=3813"/>
		<updated>2026-10-05T03:27:56Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Created page with &amp;quot;== snap ==  &amp;lt;syntaxhighliht lang=&amp;quot;bash&amp;quot;&amp;gt; sudo snap install go --classic &amp;lt;/syntaxhighlight&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== snap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighliht lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo snap install go --classic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Go&amp;diff=3812</id>
		<title>Go</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Go&amp;diff=3812"/>
		<updated>2026-10-05T03:27:18Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fundamental&lt;br /&gt;
! Std APIs&lt;br /&gt;
! 3rd Party APIs&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Go/Quick Start|Quick Start]]&lt;br /&gt;
* [[Go/gvm|gvm]]&lt;br /&gt;
* [[Go/snap installation|snap installation]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Go/Fiber|Fiber]]&lt;br /&gt;
* [[Go/migrate|migrate]]&lt;br /&gt;
* [[Go/Task|Task]]&lt;br /&gt;
* [[Go/MQTT|MQTT]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3811</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Main_Page&amp;diff=3811"/>
		<updated>2026-10-05T02:29:51Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* System Management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | System Management&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Development&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | RDBMS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Full-text Search&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;System Management&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Useful Commands]]&lt;br /&gt;
* [[tmux]]&lt;br /&gt;
* [[Docker|Docker]]&lt;br /&gt;
* [[Services/Nginx|Nginx]]&lt;br /&gt;
* [[gcloud]]&lt;br /&gt;
* [[QEMU]]&lt;br /&gt;
* [[Network Config]]&lt;br /&gt;
* [[WSL]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display: none;&amp;quot;&amp;gt;Development&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Git]]&lt;br /&gt;
* [[Go]]&lt;br /&gt;
* [[Vue.js]]&lt;br /&gt;
* [[Node]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[Android]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Editor]]&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;RDBMS&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SQL Commands]]&lt;br /&gt;
* [[DB Import &amp;amp; Export]]&lt;br /&gt;
* [[Migration]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Full-text Search&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* TODO&lt;br /&gt;
|-&lt;br /&gt;
! Data Visualization || OpenStreetMap || MediaWiki || Misc&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Data Visualization&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[SVG]]&lt;br /&gt;
* D3.js&lt;br /&gt;
* Image Tools&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;OpenStreetMap&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* Mapsforge&lt;br /&gt;
* PostGIS&lt;br /&gt;
* Projection&lt;br /&gt;
* Map Conversion&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;MediaWiki&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[Test QuickGV]]&lt;br /&gt;
* [[Test Math]]&lt;br /&gt;
* [[Test Template]]&lt;br /&gt;
* Build extension&lt;br /&gt;
* [[Migration tips]]&lt;br /&gt;
* [[Special:Version|Version]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Version_lifecycle Version Lifecycle]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:RevisionDelete RevisionDelete]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;Misc&amp;lt;/span&amp;gt; ======&lt;br /&gt;
* [[LM]]&lt;br /&gt;
* [[Hardware Issue]]&lt;br /&gt;
* [[Linux Mirrors]]&lt;br /&gt;
* [[Graphviz]]&lt;br /&gt;
* [[macOS trouble shooting]]&lt;br /&gt;
* [[GCP]]&lt;br /&gt;
* [[SKCOM]]&lt;br /&gt;
* [[TOEIC]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3810</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3810"/>
		<updated>2026-10-05T02:29:31Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Tacoball moved page Services/Docker to Docker without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3809</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3809"/>
		<updated>2026-10-05T02:28:21Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🖼️ Image || 🐧 OS || 🔌 Expose || 💻 Shell Command&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || 80 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || 8000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || 8002 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || 4000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || 5432 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3808</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3808"/>
		<updated>2026-10-05T02:27:45Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🖼️ Image || 🐧 OS || 🔌 Default Expose || 💻 Shell Command&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || 80 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || 8000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || 8002 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server ||  || - || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || 4000 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || 5432 || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3807</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3807"/>
		<updated>2026-10-05T02:26:58Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 🖼️ Image || 💻 Shell Command || 🐧 OS || 🔌 Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || Ubuntu || 80&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || Ubuntu || 8000&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || Alpine || 8002&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; ||  || -&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; ||  || -&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; ||  || 4000&lt;br /&gt;
|-&lt;br /&gt;
| postgres || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; ||  || 5432&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3806</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3806"/>
		<updated>2026-10-05T02:24:43Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 80&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 8000&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 8002&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || -&lt;br /&gt;
|-&lt;br /&gt;
| openvino/model_server ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || -&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 4000&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 5432&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3805</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3805"/>
		<updated>2026-10-05T02:23:48Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 80&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 8000&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 8002&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || -&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 4000&lt;br /&gt;
|-&lt;br /&gt;
| postgres ||  || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 5432&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3804</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3804"/>
		<updated>2026-10-05T02:22:24Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 80&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 8000&lt;br /&gt;
|-&lt;br /&gt;
| yuzutech/kroki-mermaid || Alpine || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 8002&lt;br /&gt;
|-&lt;br /&gt;
| vllm/vllm-openai-xpu || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 80&lt;br /&gt;
|-&lt;br /&gt;
| ghcr.io/berriai/litellm || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 8000&lt;br /&gt;
|-&lt;br /&gt;
| postgres || Alpine || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 8002&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3803</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3803"/>
		<updated>2026-10-05T02:20:05Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 80&lt;br /&gt;
|-&lt;br /&gt;
| kroki || Ubuntu || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name bash&amp;lt;/syntaxhighlight&amp;gt; || 8000&lt;br /&gt;
|-&lt;br /&gt;
| kroki-mermaid || Alpine || &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo docker exec -it container_name sh&amp;lt;/syntaxhighlight&amp;gt; || 8002&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3802</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3802"/>
		<updated>2026-10-05T02:18:44Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || || 80&lt;br /&gt;
|-&lt;br /&gt;
| kroki || Ubuntu || || 8000&lt;br /&gt;
|-&lt;br /&gt;
| kroki-mermaid || Alpine || || 8002&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3801</id>
		<title>Docker/Used Images List</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker/Used_Images_List&amp;diff=3801"/>
		<updated>2026-10-05T02:18:14Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: Created page with &amp;quot;== List ==  {| class=&amp;quot;wikitable&amp;quot; ! Image || OS || Shell Command || Default Expose |- | mediawiki || Ubuntu || || |- | kroki || Ubuntu || || |- | kroki-mermaid || Alpine || || |}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image || OS || Shell Command || Default Expose&lt;br /&gt;
|-&lt;br /&gt;
| mediawiki || Ubuntu || ||&lt;br /&gt;
|-&lt;br /&gt;
| kroki || Ubuntu || ||&lt;br /&gt;
|-&lt;br /&gt;
| kroki-mermaid || Alpine || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3800</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3800"/>
		<updated>2026-10-05T02:14:39Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Docker/Used Images List|Used Images List]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3799</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3799"/>
		<updated>2026-10-05T01:36:15Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🖼️ Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | ⚙️ Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 🐳 docker-compose.yaml&lt;br /&gt;
! 📦 Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3798</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3798"/>
		<updated>2026-10-05T01:34:52Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Maintenance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! docker-compose.yaml&lt;br /&gt;
! Dockerfile&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3797</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3797"/>
		<updated>2026-10-05T01:32:56Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Images&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Maintainance&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | Operation&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 📦 Packages&lt;br /&gt;
! 📁 File System&lt;br /&gt;
! 📊 Data&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3796</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Docker&amp;diff=3796"/>
		<updated>2026-10-05T01:31:41Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🌐 Networking&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 💻 OS&lt;br /&gt;
! style=&amp;quot;width:200px;&amp;quot; | 🛠️ Hardware&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 📦 Packages&lt;br /&gt;
! 📁 File System&lt;br /&gt;
! 📊 Data&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Clean Docker =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Run debian image on Windows ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git Bash&lt;br /&gt;
winpty docker run --name=debian0 -it debian:12&lt;br /&gt;
&lt;br /&gt;
# Power Shell&lt;br /&gt;
docker run --name=debian0 -it debian:12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Open shell of running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mwdev-mediawiki-1 /bin/bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Copy file from running container ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Build image ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker build .&lt;br /&gt;
docker build -t gdtile:2.1 .&lt;br /&gt;
docker tag c8abdb693116 gdtile:2.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove exited containers ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rm $(docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rm $(sudo docker ps -f &#039;status=exited&#039; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Remove unused images ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&lt;br /&gt;
sudo docker rmi $(sudo docker images -f &amp;quot;dangling=true&amp;quot; -q)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| run and start it again ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name sandbox0 \&lt;br /&gt;
  --volume a:b \&lt;br /&gt;
  -it alpine:3.11&lt;br /&gt;
docker start -i sandbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Make apt faster ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
FROM ubuntu:20.04&lt;br /&gt;
&lt;br /&gt;
RUN sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
RUN apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# In host&lt;br /&gt;
docker run -it ubuntu:20.04&lt;br /&gt;
# In container&lt;br /&gt;
sed -i &#039;s/\(archive\|security\).ubuntu.com/free.nchc.org.tw/&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Run ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
# Mapping directory on Windows, do not use ~&lt;br /&gt;
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash&lt;br /&gt;
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| test ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps --size --all&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| logs ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker ps logs -ft container&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Dockerfile Debugging =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! TODO || Command&lt;br /&gt;
|-&lt;br /&gt;
| Verify environment variable&amp;lt;br&amp;gt;(stdout won&#039;t be printed) ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
RUN export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;&lt;br /&gt;
RUN echo &amp;quot;NVM_DIR=$NVM_DIR&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ||&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;docker&amp;quot;&amp;gt;&lt;br /&gt;
docker compose build --no-cache --progress=plain&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
	<entry>
		<id>http://192.168.25.90:53000/index.php?title=Migration_tips&amp;diff=3795</id>
		<title>Migration tips</title>
		<link rel="alternate" type="text/html" href="http://192.168.25.90:53000/index.php?title=Migration_tips&amp;diff=3795"/>
		<updated>2026-10-04T11:55:24Z</updated>

		<summary type="html">&lt;p&gt;Tacoball: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Steps ==&lt;br /&gt;
&lt;br /&gt;
* Choose new image&lt;br /&gt;
* Update docker-compose.yaml&lt;br /&gt;
* Check docker-compose.yaml by docker compose config&lt;br /&gt;
* docker compose up&lt;br /&gt;
* List package versions&lt;br /&gt;
* Test extensions&lt;br /&gt;
* Check file system permissions&lt;br /&gt;
&lt;br /&gt;
== Choose new image ==&lt;br /&gt;
&lt;br /&gt;
=== Comparison ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Included Web Server&lt;br /&gt;
! PHP Execution Method&lt;br /&gt;
! Base OS&lt;br /&gt;
! Recommended Use Case&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mediawiki:1.43&amp;lt;/code&amp;gt;&lt;br /&gt;
| Apache&lt;br /&gt;
| mod_php&lt;br /&gt;
| Debian&lt;br /&gt;
| Simple deployment with a single container&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mediawiki:1.43-fpm&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| PHP-FPM&lt;br /&gt;
| Debian&lt;br /&gt;
| Use with Nginx or an existing Apache server&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mediawiki:1.43-fpm-alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
| None&lt;br /&gt;
| PHP-FPM&lt;br /&gt;
| Alpine Linux&lt;br /&gt;
| Smaller image size for users familiar with Alpine&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== package versions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull mediawiki:1.43.9&lt;br /&gt;
docker run -it mediawiki:1.43.9 bash&lt;br /&gt;
&lt;br /&gt;
cat /etc/os-release&lt;br /&gt;
php -v&lt;br /&gt;
php -m&lt;br /&gt;
curl -V&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== debug ===&lt;br /&gt;
&lt;br /&gt;
Permission problem usually arize when upgrade new version.&lt;br /&gt;
At that time, bash into the container is necessary for debugging.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker exec -it mw-main bash&lt;br /&gt;
sudo docker exec -it mw-main mmdc -V&lt;br /&gt;
sudo docker exec -it mw-main bash -c &#039;echo $PATH | tr &amp;quot;:&amp;quot; &amp;quot;\n&amp;quot;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== from 1.39 to 1.47 ==&lt;br /&gt;
&lt;br /&gt;
* Backup&lt;br /&gt;
** LocalSettings.php&lt;br /&gt;
** images&lt;br /&gt;
** database&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose exec mediawiki php maintenance/run.php update&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tacoball</name></author>
	</entry>
</feed>