點燈坊

新しいことを始めるのに、遅すぎる挑戰はない

タグ : Docker

使用 Nginx + Express 實現 Microservice

若要使用 Microservice 架構,則會各自將 Vue 與 Express 包成 Docker Image,然後使用 Docker Compose 一次啟動 Vue 與 Express,此時 Express 會包在 Docker 內部網路,Vue 需使用 Nginx 的 Reverse Proxy 才能連上 Express。

使用 Express 實現 Microservice

若要使用 Microservice 架構,則會各自將 Vue 與 Express 包成 Docker Image,然後使用 Docker Compose 一次啟動 Vue 與 Express,此時 Express 會包在 Docker 內部網路,Vue 所需的 HTTP Service 與 Reverse Proxy 也使用 Express 提供。

將 Node 包進 Nginx Image

在 Microservice 架構下,理論上 Nginx 與 Node 應該各自放在不同 Container 下,但有時 API 就是要控制 Nginx 或其他執行檔如 FFmpeg,此時將 Node 與 Nginx 包在同一個 Image 會更方便。

使用 Docker 執行 Ubuntu

以前在 macOS 安裝 Ubuntu 都要先安裝 Parallel Desktop,然後再將 Ubuntu 安裝在 Parallel Desktop 上,安裝了 Docker Desktop for macOS 後,只要下載 Ubuntu 的 Docker Image,Ubuntu 就能以 Container 形式跑在 Docker 上。

安裝 Docker Desktop for Windows

由於 Docker 在本質上仍是 Linux,只是多個 Container 跑在同一個 Linux 上,因此若要將 Docker 跑在 Windows,仍然需要一個 VM 在背景跑 Linux。Docker Desktop for Windws 內建支援 Windows 的 Hyper-V,只會在 Hyper-V 內跑一個極小的 Linux,如此其他 Container 就能跑在 Docker 上。

安裝 Docker Desktop for Mac

由於 Docker 在本質上仍是 Linux,只是多個 Container 跑在同一個 Linux 上,因此若要將 Docker 跑在 macOS,仍然需要一個 VM 在背景跑 Linux。Docker Desktop for Mac 讓我們不用安裝其他 VM,就可以將 Container 跑在 Docker 上。

使用 Docker 執行 MongoDB

若要在 macOS 使用 MongoDB,最簡單的方式就是使用 Docker。只要在 docker-compose.yml 描述好 MongoDB 設定, docker compose up -d 即可快速啟動。

使用 Docker 執行 Cypress

Cypress 基於 Node 生態系,若使用 Express 後端或 Vue 前端,則使用 Yarn 安裝 Cypress 則易如反掌,但若不使用 JavaScript 開發,則可使用 Docker 版本的 Cypress 版本。

使用 Docker 執行 Redis

Redis 為常用的 In-Memory Key Value Database,適合用來當 Cache 輔助 Database,傳統會使用 Homebrew 安裝 macOS 版 Redis,本文介紹使用 Docker 執行 Redis。

如何以 Vue + Node 實現 Microservice ?

若要使用 Microservice 架構,則會各自將 Vue 與 Node 包成 Docker Image,然後使用 Docker Compose 一次啟動 Vue 與 Node,此時 Node 會包在 Docker 內部網路,Vue 所需的 HTTP Service 與 Reverse Proxy 也能繼續由 Node 提供。