2014-12-16 14 views
7

TL; DR: nhà soạn nhạc cài đặt thất bại khi sau khi cài đặt các kịch bản không thể nhìn thấy một máy chủ MySQLnhà soạn nhạc cài đặt thất bại khi không thể nhìn thấy cơ sở dữ liệu mysql

Tôi đang xây dựng một container Docker cho một ứng dụng Symfony, và trong quá trình xây dựng tôi làm điều gì đó như thế này

RUN export SYMFONY_ENV=prod && \ 
    composer install --prefer-dist --optimize-autoloader 

Đến cuối quá trình cài đặt, nó không thành công với điều này

Generating optimized autoload files 


    [Doctrine\DBAL\Exception\DriverException]                 
    An exception occured in driver: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) 

    [Doctrine\DBAL\Driver\PDOException]           
    SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) 

    [PDOException]                
    SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) 


Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception 

    [RuntimeException]               
    An error occurred when executing the "'cache:clear --no-warmup'" command. 

Bây giờ, tôi có thể u se --no-scripts nhưng sau đó có lẽ tôi cần phải chạy lại composer install sau khi bắt đầu vùng chứa và tôi muốn vùng chứa của mình sẵn sàng nhất có thể.

Vì tôi không tìm thấy nhiều tài liệu tham khảo cho các vấn đề tương tự, có thể có điều gì đó trong ứng dụng của tôi bị lỗi và tôi nghi ngờ tôi sẽ trả lời câu hỏi của riêng tôi. Hy vọng của tôi là trong việc mô tả nó, tôi sẽ tìm ra nó. Than ôi, tôi không có. Các đầu mối được hoan nghênh :)

+0

bạn không sử dụng một kết nối db trong dự án của bạn? – Matteo

+1

có, nhưng nó không được biết/có sẵn khi container được xây dựng –

+0

[ở đây] (https://speakerdeck.com/ubermuda/a-multi-container-symfony2-setup-with-docker?slide=31) cài đặt đầu tiên/bắt đầu dịch vụ trước tác vụ soạn nhạc. Hy vọng điều này giúp đỡ – Matteo

Trả lời

5

Học thuyết đã giới thiệu một số mã đã cố gắng tự động phát hiện những thứ về cơ sở dữ liệu khá háo hức.

Cách giải quyết đơn giản là cho Doctrine phiên bản máy chủ đích, ví dụ:

doctrine: 
    dbal: 
     default_connection: default 
     connections: 
      default: 
       dbname: Symfony2 
       user:   root 
       password: null 
       host:   localhost 
       driver:  pdo_mysql 
       server_version: 5.6 

Xem https://github.com/doctrine/DoctrineBundle/issues/351#issuecomment-75456547

+0

Bạn đã có bất kỳ may mắn cài đặt phụ thuộc của bạn mà không có các kịch bản cài đặt sau cố gắng kết nối với cơ sở dữ liệu? – Onema

+0

@Onema xem câu trả lời cập nhật! –

Các vấn đề liên quan