SlideShare a Scribd company logo
⽤ Docker 建置 END OF LIFE 的
RUBY 開發環境
Jimmy 居米, 2022.07.30
老專案續命的經驗談
關於居米
COSCUP 2021 - 講者
5xRuby.com - 軟體⼯程師


河洛⼯作室 - 遊戲企劃


傳奇網路遊戲 - 遊戲企劃
APPLE 製造的災難
APPLE M1 Chip
ARM 架構
處理器指令集
Library 無法編譯
聊聊開發環境的惡夢
換電腦的惡夢,⼯程師懂的
我的電腦可以動,你的・・・
有個好東⻄叫 Docker
什麼是?
https://docs.docker.com/get-started/overview/
Docker Image
Docker
f
ile
Docker
f
ile Build 出 Image
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
光碟片的概念
這張光碟片有點厲害!
Docker Container
執⾏光碟片的電腦
現在我們有⼀台電腦的能⼒
開發需要同時啟動多個服務
Docker Compose
多台電腦⼀起玩
Docker 官⽅ Rails docker-compose.yml 範例檔
多台電腦怎麼溝通
Docker Networking
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
預設是 Bridge
Photo: https://wordpress.org/openverse/image/d85175eb-4af3-4cf3-bd3d-777210faf30f
Docker 懶⼈包告⼀段落
老專案的問題
Ruby 版本 2.3.7
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
我只是想寫程式啊!!?
Docker Hub 開源的光碟片
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
別忘了光碟片的特性。唯讀
打網咖的電腦,時間到會被還原
Ruby Gems 在 Container


啟動需要重裝的問題
Docker Volume
掛載硬碟到
Container 上
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
如何訪問 Web Service?
Expose Port
應⽤程式需要資料庫
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
讓 Rails 和 DB 連接
Rails 專案中 con
f
ig/database.yml
如何匯入資料庫檔案?
把檔案傳入容器內的⽅法
docker cp
Rails 容器化後怎麼 Debug?
埋斷點不會動?
使用 Docker 建置 END OF LIFE 的 Ruby 開發環境
• Docker 專案⽬錄


• Rails APP 1 repo


• Rails APP 2 repo


• Rails APP 3 repo


• development_docker
f
iles/ruby_version/Docker
f
ile


• docker-compose.yml
容器化後的專案架構
• Docker-compose up 啟動全部服務


• 改 code


• 進入容器內執⾏相關 rake task ex: rails console, rails db:migrate, rspec…


• 需要時重啟 container


• 需要埋斷點 ex:binding.break, byebug 就 attach 到某個容器中進⾏除錯
容器化後的⼯作流程
⼯作流實際 Demo
Q & A 時間
Email:jimmy2822@gmail.com

More Related Content

PDF
PDF
Docker Build
PPTX
Docker 基礎介紹與實戰
PPTX
Docker 101
PDF
Docker with Cloud Service
PDF
Docker with Cloud Service GCPUG
PDF
Docker容器微服務 x WorkShop
PDF
讓軟體開發與應用更自由 - 使用 Docker 技術
Docker Build
Docker 基礎介紹與實戰
Docker 101
Docker with Cloud Service
Docker with Cloud Service GCPUG
Docker容器微服務 x WorkShop
讓軟體開發與應用更自由 - 使用 Docker 技術
Ad

使用 Docker 建置 END OF LIFE 的 Ruby 開發環境