GitLab: 使用 Testcontainers 執行測試

此文件屬於CI/CD指南的一部分。請在此處查看完整指南:如何使用 GitLab CI/CD

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 為需要快速、安全及可擴展環境的團隊,提供即用型 GitLab cloud 解決方案:

  • 無限用戶、儲存庫、數據傳輸及 CI/CD 處理時間,讓您享有完全彈性。
  • 一鍵更新,輕鬆無縫升級,確保您的環境隨時保持最新,無需停機。
  • HTTPS 保護的自訂網域名稱(例如 https://git.your-company.com),提升專業形象及安全性。
  • 您專屬的私人獨立基礎設施,確保穩定效能高度安全,完全隔離,無需擔心其他用戶影響。
  • 可選擇託管地點:🇪🇺 歐洲🇺🇸 美國,靈活配合您的合規或延遲需求。

快速開始,專注於您的程式碼。Stackhero 的 GitLab cloud hosting 解決方案約 5 分鐘即可啟用。

如果您的測試套件使用 Testcontainers,這是一個在測試期間以臨時 Docker container 啟動真實服務(如資料庫、message broker 等)的 library,上述設定已經涵蓋所需。請保留 docker:29-dind 服務及兩個變數:Testcontainers 會利用 DOCKER_HOST 連接 Docker daemon 及其啟動的 container,無需額外設定。

在 CI 忘記設定 DOCKER_HOST 是 Testcontainers 失敗的最常見原因。此時 library 會退回使用 runner 掛載的 Docker socket,導致無法連接到自己的測試 container,通常會出現 Ryuk helper container 超時的情況。