ちょっとハマったのでメモしておきます。
基本的にはサービスコンテナを使ってmysql8を動かすGithub Actionsの例
MySQLの接続先を0.0.0.0
or 127.0.0.1
にすることによってうまくMySQL8に接続できた。
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
name: CI
on:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: test
MYSQL_PASSWORD: password
MYSQL_DATABASE: test_db
TZ: "Asia/Tokyo"
ports:
- 3307:3306
options: --health-cmd "mysqladmin ping -h 127.0.0.1" --health-interval 20s --health-timeout 10s --health-retries 10
steps:
- uses: actions/checkout@v2
- name: Check MySQL Version
run: echo 'select version();' | mysql -h 0.0.0.0 --port 3307 -u root -proot
|
しかし「ランナーマシン上で直接のジョブの実行」の部分を参照すると明らかにlocalhostで接続している。まあmysqlじゃなくてpostgresqlだから?
とりあえず、Github ActionsのサービスコンテナでMySQL8を使う場合は ホストに0.0.0.0
or 127.0.0.1
を指定するのが良さそう。