GitLab CIジョブでのサービス設定

データベース、キャッシュ、Docker-in-Docker用のGitLab CIサービス設定方法。サービスエイリアス、ヘルスチェック、環境変数をカバー。

Docker & Containers

詳細な説明

GitLab CIでのサービス使用

GitLab CIのサービスは、ジョブコンテナと並行して実行されるDockerコンテナです。Docker Composeなしでデータベースやキャッシュなどの依存関係を提供します。

PostgreSQLサービス

test_with_postgres:
  stage: test
  image: node:20-alpine
  services:
    - name: postgres:16-alpine
      alias: db
  variables:
    POSTGRES_DB: testdb
    POSTGRES_USER: runner
    POSTGRES_PASSWORD: secret
    DATABASE_URL: "postgresql://runner:secret@db:5432/testdb"
  script:
    - npm ci
    - npm run test:integration

サービスネットワークの仕組み

サービスはDockerネットワーキングを通じてジョブコンテナにリンクされます。aliasがホスト名になります。エイリアスがない場合、ホスト名はイメージ名から派生します。

サービス変数

variablesセクションで設定された環境変数は、ジョブコンテナとすべてのサービスコンテナの両方に渡されます。これがデータベースの設定方法です。

ユースケース

テストと並行して単一のデータベースやキャッシュが必要な場合にサービスを使用します。より複雑なマルチコンテナセットアップの場合は、Docker Composeを検討してください。

試してみる — GitLab CI Config Generator

フルツールを開く