Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160

    importare database mysql dentro un contenitore (docker)

    codice:
    $ cat docker-compose.yml
    version: '2'
    services:
      app:
        build:
          context: .
        image: test-image
        ports:
          - 8080:80
        volumes:
          - .:/srv/app
        links:
          - mysql
          - redis
        environment:
          DB_HOST: mysql
          DB_DATABASE: laravel_docker
          DB_USERNAME: app
          DB_PASSWORD: password
          REDIS_HOST: redis
          SESSION_DRIVER: redis
          CACHE_DRIVER: redis
      mysql:
        image: mysql:5.7
        ports:
          - 13306:3306
        environment:
          MYSQL_DATABASE: test
          MYSQL_USER: root
          MYSQL_PASSWORD: root1
          MYSQL_ROOT_PASSWORD: root2
      redis:
        image: redis:4.0-alpine
        ports:
          - 16379:6379
    
    $ cat Dockerfile
    FROM php:7.2.2-cli
    
    COPY . /usr/local/bin
    WORKDIR /usr/local/bin
    RUN docker-php-ext-install mbstring pdo pdo_mysql
    
    CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < test.sql
    
    $ cat test.php
    <?php
    
    $pdo = new pdo(
        "mysql:host=localhost;dbname=test",
        'root','root1'
    );
    
    $query = $pdo->query("SELECT * FROM people");
    var_dump($pdo->errorInfo());
    
    foreach($query as $row ){  
        var_dump($row);  
    }  
    
    $ cat test.sh
    #!/usr/bin/env bash
    set -e
    cd $(dirname "$0")
    
    docker-compose up --build -d
    docker run test-image php /usr/local/bin/test.php
    
    $ ./test.sh
    Building app
    Step 1/5 : FROM php:7.2.2-cli
     ---> 21c3582549e6
    Step 2/5 : COPY . /usr/local/bin
     ---> Using cache
     ---> e0a9005e2907
    Step 3/5 : WORKDIR /usr/local/bin
     ---> Using cache
     ---> 3efd6cdfab46
    Step 4/5 : RUN docker-php-ext-install mbstring pdo pdo_mysql
     ---> Using cache
     ---> 282ab8fb5896
    Step 5/5 : CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < test.sql
     ---> Using cache
     ---> 7ba640bd690d
    Successfully built 7ba640bd690d
    dockermysql_redis_1 is up-to-date
    dockermysql_mysql_1 is up-to-date
    Starting dockermysql_app_1
    
    Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /usr/local/bin/test.php:5
    Perchè non funziona?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché non spieghi il problema che riscontri (e magari leggi anche il regolamento della sezione)?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Perché non spieghi il problema che riscontri (e magari leggi anche il regolamento della sezione)?
    Il codice lo hai esaminato per bene?

    Ho importato il db tramite aposito file sql (test.sql)

    Ho lanciato

    $ php test.php

    Ma come vedi nel file test.php nelle righe 3-6 si verifica il seguente errore

    Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /usr/local/bin/test.php:5

    Perchè?
    Cosa c'è che non funziona?
    Ultima modifica di astros3; 02-03-2018 a 17:54

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.