關於 #Dockerfile 的內容

蒼時弦也蒼時弦也

Rails 部署實踐 - 素材預先編譯

目前大多數的 Rails 專案都還是前端、後端一起開發的,因此我們還需要讓製作出來的容器鏡像能夠將網站運行所需的圖檔、JavaScript 等等製作出來加入到容器鏡像中。

目前我們還沒有搭配持續交付(Continuous Delivery)相關的設計,因此我們先以直接在容器鏡像製作階段製作素材(Assets)的方式。

蒼時弦也蒼時弦也

Rails 部署實踐 - 多階段建置

經過兩週的努力,我們已經可以製作出能夠運行 Ruby on Rails 的環境,然而這個狀態的環境依舊同時混合了「編譯」跟「運行」兩種狀態的套件,在過去我們需要透過 RUN 合併命令來清理,然而在新版的 Docker 提供了「多階段建置(Multi-Stage Build)」的選項,因此我們可以直接切割開來處理。

蒼時弦也蒼時弦也

Rails 部署實踐 - 容器化的 Bundler 最佳設定

雖然我們已經轉換為 Alpine 來製作容器鏡像,然而在現代軟體設計中為了加速會有許多快取(Cache)的檔案產生,以利再次執行時能夠更快速的啟動。使用 Bundler 安裝 Ruby Gem 也不例外,這些檔案在容器部署中有非常多是不需要的,因此我們還需要針對 Bundler 進行最佳化。

蒼時弦也蒼時弦也

Rails 實踐部署 - 使用 Alpine 製作容器鏡像

容器化 Rails 專案概述這篇文章,我們介紹了非常快速的 Rails 容器製作方式,然而這樣的方式除了容器鏡像會非常大之外,也包含了許多我們不需要在正式環境存在的套件,對安全性也會有索影響,因此接下來我們要透過 Alpine 來製作專為正式環境部署打造的容器鏡像。