iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用系列 第 22

Day 22:部署到上線環境的準備:什麼是 Dockerfile

  • 分享至 

  • xImage
  •  

引言

繼前幾天連續講了 4 篇 GitHub Actions runner 的架設、評估後,今天回來講 RSS 閱讀器後端的事情。

我們今天開始講解如何將 RSS 閱讀器專案包裝成 container,準備部署到上線環境。在進入這個階段之前,了解Dockerfile是非常重要的。因此本篇主要會集中在 Dockerfile 的基礎知識。

為何要寫 Dockerfile?

Dockerfile 是一個腳本,包含了一組指令和參數,用於定義如何建置一個 Docker 映像檔(Image)。有了這個文件,Docker 能自動化地完成建構映像檔的過程,這對於持續整合(CI)和持續部署(CD)是非常有用的。

Dockerfile 的基礎結構

一個基礎的Dockerfile通常包含以下幾個部分:

  1. FROM:指定基底映像檔,通常是一個操作系統或特定的環境。
FROM ubuntu:22.04
  1. RUN:執行指令,通常用於安裝軟體或設定環境。
RUN apt-get update && apt-get install -y git
  1. COPY/ADD:複製文件或目錄到映像檔。
COPY ./app /app
  1. WORKDIR:設定工作目錄。
COPY ./app /app
  1. CMD/ENTRYPOINT:設定容器啟動後執行的指令。
CMD ["npm", "start"]

Dockerfile 的最佳實踐

  1. 保持精簡:避免安裝不必要的軟體和工具。
  2. 多層緩存:優化 RUN 指令,以利用Docker的多層緩存。
  3. 參數化設定:使用環境變數而不是硬編碼。

明天我們會為 RSS 閱讀器專案寫一個 Dockerfile。


上一篇
Day 21:番外篇 - 挑戰 Docker Swarm 多開 GitHub Actions Runner
下一篇
Day 23:為 RSS 閱讀器 API 寫一個 Dockerfile
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言