昨天我們已經嘗試使用Docker起了一個MySQL,現在我們要試著把他放進TravisCI裡面讓我們的測試可以順利執行!
沒錯!依照我這顆簡單的小腦袋猜測,我們只要照著昨天的指令把他納進.travis.yml
我們就大功告成了!
所以我們的就照著輸入
.travis.yml
竟然出現跟昨天一樣的錯誤...WHY?
好吧!眼下這花費的時間也已經大大超出我們所預料,這時突然靈機一動!
既然travisCI可以有services出docker,那應該也可以services出mysql!
結果!真的跟我們所想的一樣欸!
文件
.............
好吧!那我們改變策略!
直接把我們的.travis.yml
變成這樣!
好不容易結束後,但卻跑出了另一個錯誤......
稍微去估狗一下,發現了這個。
大事上是說因為utf8mb4的關係,所以只要是跑在MySQL版本5.7.7以下的,都需要在AppServiceProvider.php
裡面加入以下這行
public function boot()
{
Schema::defaultStringLength(191);
}
這時你應該已經和我一樣想打算放棄這個測試的調整了...
我們為了可以在測試裡面掛載DatabaseTransactions
這個trait!
要在每次跑CI浪費將近十分鐘!怎麼想都不對勁!
仔細想想,不掛載也可以正常在CI上執行,那我們只要把local的資料庫和雲上的資料庫在.env
清楚隔離就好了!所以我想這PR我們就......放生吧!它讓我們留下一點紀念就好!
雖然這兩天有一點瞎忙,對我們原本在作的專案好像也沒啥幫助,
但我們還是稍微認識了一些Docker的知識還有TravisCI的一些設定可以玩。
稍微整理一下這兩天的重點:
docker pull mysql
簡單來說就是從MySQL的倉庫拉下一個映像docker run
就是可以把你的映像給具現化出一個容器出來docker run
出很多的容器出來,並且他們也不會相互影響docker ps
查看具現化出來的容器好吧!今天的分享就到這邊,這兩天算是跌了很慘的一跤了!慘RRRRR