MySQL構成の例
このガイドでは、MySQLに依存するプロジェクトの継続的インテグレーションパイプラインの構成について説明します。Droneを初めて使用する場合は、最初にチュートリアルとビルド構成ガイドをお読みください。
基本例
以下の例では、MySQLサービスコンテナを起動するパイプラインを示しています。データベースサーバーは、ホスト名がサービスコンテナ名と一致するdatabase:3306
で利用可能になります。
1 kind: pipeline
2 name: default
3
4 steps:
5 - name: test
6 image: mysql
7 commands:
8 - sleep 15
9 - mysql -u root -h database --execute="SELECT VERSION();"
10
11 services:
12 - name: database
13 image: mysql
14 environment:
15 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
16 MYSQL_DATABASE: test
データベースオプション
追加のランタイムオプションを使用してmysqlコンテナを起動する必要がある場合は、エントリポイントとコマンド引数をオーバーライドできます。
11 services:
12 - name: database
13 image: mysql
14 entrypoint: [ "mysqld" ]
15 command: [ "--character-set-server=utf8mb4" ]
データベース設定
公式のMySQLイメージは、デフォルトのユーザー名、パスワード、データベースなどを作成するために起動時に使用される環境変数を提供します。詳細については、公式の画像ドキュメントを参照してください。
11 services:
12 - name: database
13 image: mysql
14 environment:
15 MYSQL_DATABASE: test
16 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
一般的な問題
初期化
MySQLコンテナに接続できない場合は、MySQLに初期化して接続の受け入れを開始するのに十分な時間を与えていることを確認してください。
1 kind: pipeline
2 name: default
3
4 steps:
5 - name: test
6 image: mysql
7 commands:
8 - sleep 15
9 - mysql -u root -h database
ホスト名が正しくありません
127.0.0.1
またはlocalhost
を使用してMysqlコンテナに接続することはできません。 Mysqlに接続できない場合は、mysqlサービスコンテナの名前に対応する正しいホスト名を使用していることを確認してください。
悪い:
steps:
- name: test
image: mysql
commands:
- sleep 15
- mysql -u root -h localhost
良い:
steps:
- name: test
image: mysql
commands:
- sleep 15
- mysql -u root -h database
services:
- name: database
image: mysql