2015-12-03 25 views
2

我試圖用GitLab CI和Docker運行PHPUnit測試。然而,當它到達,我運行我的遷移點,我得到這個錯誤:Gitlab CI和Docker在遷移時拋出錯誤

$ php artisan migrate 



    [PDOException]          
    SQLSTATE[HY000] [2002] No such file or directory 




ERROR: Build failed with: exit code 1 

這裏是我的.gitlab-ci.yml文件:

# Before Script 
before_script: 
    - composer self-update 
    - composer config -g github-oauth.github.com $GITHUB_AUTH_KEY 
    - composer install --prefer-dist 
    - cp .env.example .env 
    - echo "DB_HOST=mysql" >> .env 
    - echo "CHALLONGE_API=$CHALLONGE_API" >> .env 
    - echo "CHALLONGE_SUBDOMAIN=$CHALLONGE_SUBDOMAIN" >> .env 
    - echo "EBOT_DB_PASSWORD=$EBOT_DB_PASSWORD" >> .env 
    - echo "SOCKET_IO_IP=$SOCKET_IO_IP" >> .env 
    - echo "REDIS_HOST=$REDIS_HOST" >> .env 
    - php artisan key:generate 
    - php artisan migrate 

# Services 
services: 
    - mysql:lastest 
    - redis:latest 

# Variables 
variables: 
    MYSQL_USER: homestead 
    MYSQL_PASSWORD: secret 
    MYSQL_ROOT_PASSWORD: secret 
    MYSQL_DATABASE: $DB_NAME 

# PHP 5.6 
php:5.6: 
    image: bobey/docker-gitlab-ci-runner-php5.6 
    script: 
    - echo "Running PHPUnit Tests" 
    - php vendor/bin/phpunit --colors --debug --coverage-text 

任何想法,爲什麼它拋出這個錯誤?

+0

我想你會收到這個錯誤,當你沒有在你的機器ssh'd。你需要'流浪ssh',cd進入目錄和'php artisan migrate' – senty

+0

@senty我相當確定代碼在Docker容器中運行。 – cheese5505

+0

也得到這個,不知道是什麼原因造成的,但我認爲這可能是工匠無法連接到數據庫,它似乎沒有有效的連接。 –

回答

1

我假設DB_HOST在您的.env文件中設置爲localhost,它將嘗試通過unix套接字連接到MySql服務器。但是,這不是開箱即用的。嘗試在您的測試環境中將其設置爲mysql,正如文檔中所述:http://docs.gitlab.com/ee/ci/services/mysql.html