Skip to content

Commit 0b6a395

Browse files
committed
docker-compose-override tutorial
1 parent 3a6c8f9 commit 0b6a395

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* [目錄](https://github.com/twtrubiks/docker-tutorial#%E5%A6%82%E4%BD%95%E6%B8%85%E9%99%A4-docker-container-log) - [Youtube Tutorial - 如何清除 Docker container log](https://youtu.be/SiG0tmwhqqg)
2121
* [目錄](https://github.com/twtrubiks/docker-tutorial#json-file-logging-driver) - [Youtube Tutorial - Docker 中的 JSON File logging driver(container log)](https://youtu.be/wb9bONgnFn4)
2222
* [目錄](https://github.com/twtrubiks/docker-tutorial#health-check) - [Youtube Tutorial - docker 教學 Health Check](https://youtu.be/QffnQZgvmwE)
23+
* [目錄](https://github.com/twtrubiks/docker-tutorial/tree/master/docker-compose-override) - 介紹 docker-compose-override
2324

2425
## 簡介
2526

docker-compose-override/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 介紹 docker-compose-override
2+
3+
官方文檔可參考 [Merge Compose files](https://docs.docker.com/compose/multiple-compose-files/merge/)
4+
5+
通常一般我們使用都只會用 [docker-compose.yml](docker-compose.yml),
6+
7+
但其實 docker 會再去該路徑底下找是否有 [docker-compose.override.yml](docker-compose.override.yml),
8+
9+
來看一個例子,
10+
11+
當你執行 `docker compose up -d` 時,
12+
13+
docker 會去自動去找對應的 `docker-compose.override.yml`,
14+
15+
不相同的部份, 結果是兩個的相加, 以這個例子來說, 你會發現 nginx 容器內的
16+
17+
80 port (`docker-compose.yml`定義) 和 81 port (`docker-compose.override.yml`) 都被打開了,
18+
19+
如果是相同的部份, 是覆蓋, 看誰後面執行, 像是這個範例中, $TEST 會輸出 "world"
20+
21+
```cmd
22+
❯ docker exec -it nginx bash
23+
root@73377e053ab4:/# echo $TEST
24+
"world"
25+
```
26+
27+
上面說的看誰後面執行的意思是, 本質上, 如果你沒有特別設定,
28+
29+
執行
30+
31+
```cmd
32+
docker compose up -d
33+
```
34+
35+
等同下面的
36+
37+
```cmd
38+
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
39+
```
40+
41+
然後如果你把他顛倒過來, 環境變數的輸出就會不一樣了.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
services:
2+
3+
nginx:
4+
image: nginx:1.24.0
5+
restart: always
6+
container_name: nginx
7+
ports:
8+
- ":81"
9+
environment:
10+
- TEST="world"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
services:
2+
3+
nginx:
4+
image: nginx:1.24.0
5+
restart: always
6+
container_name: nginx
7+
ports:
8+
- ":80"
9+
environment:
10+
- TEST="hello"

0 commit comments

Comments
 (0)