2016-07-14 4 views
2

mongodbをSymfony 3.1.2と統合する際に問題があります。私はDoctrineMongoDBBundleを使用します。Symfony 3でmongodb(ドッカー)を使用できません

'Persisting Objects to MongoDB'の段階までは問題ありません。私は、行を追加する場合:

$dm = $this->get('doctrine_mongodb')->getManager(); 
$dm->persist($product); 
$dm->flush(); 

は何も私のリモート・データベースに起こりませんし、私は、エラーメッセージが表示されます。

Attempted to load class "MongoId" from the global namespace. Did you forget a "use" statement?

私はMac上でドッキングウィンドウのベータ版を使用します。私のドッキングウィンドウ-compose.yml:

version: '2' 
services: 
    application_ad: 
     image: busybox 
     volumes: 
      - ./:/var/www/html 
      - ./docker/nginx/conf.d/ad.conf:/etc/nginx/conf.d/default.conf 
     entrypoint: "tail -f /dev/null" 
    php_ad: 
     build: ./docker/php-fpm 
     links: 
      - db 
     volumes_from: 
      - application_ad 
    web_ad: 
     build: ./docker/nginx 
     ports: 
      - "8089:80" 
     links: 
      - php_ad 
     volumes_from: 
      - application_ad 
    db: 
     image: mongo:3.2.7 
     volumes: 
     - ./mongo-data:/data/db 
     ports: 
     - "27017:27017" 

とPHP-FPMファイル:

FROM php:7-fpm 

MAINTAINER Me <[email protected]> 

# nginx and php-fpm user MUST be the same 
RUN usermod -u 1000 www-data 

# set php.ini 
RUN touch /usr/local/etc/php/conf.d/php.ini 
RUN { \ 
     echo "date.timezone = Europe/Paris"; \ 
     echo "short_open_tag = off"; \ 
    } >> /usr/local/etc/php/conf.d/php.ini 

# composer install 
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer 

# install php extensions dependencies 
RUN apt-get update && apt-get install -my mlocate wget \ 
zlib1g-dev openssl libcurl4-openssl-dev libssl-dev pkg-config libgdbm-dev libjpeg-dev libpng-dev libmcrypt-dev libicu-dev g++ 

# install php extensions 
RUN docker-php-ext-install curl 
RUN docker-php-ext-configure gd --with-jpeg-dir="/usr/lib/x86_64-linux-gnu" 
RUN docker-php-ext-install gd 
RUN docker-php-ext-install json 
RUN docker-php-ext-install mcrypt 
RUN docker-php-ext-install mcrypt 
RUN docker-php-ext-install intl 
RUN docker-php-ext-install opcache 
RUN pecl install apcu && pecl install channel://pecl.php.net/apcu_bc-1.0.3 

# install mongo 
RUN pecl install mongodb 
RUN echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/mongo.ini 

# configure extensions 
RUN { \ 
     echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/opcache.so'; \ 
     echo 'opcache.memory_consumption=256'; \ 
     echo 'opcache.interned_strings_buffer=16'; \ 
     echo 'opcache.max_accelerated_files=20000'; \ 
     echo 'opcache.revalidate_freq=2'; \ 
     echo 'opcache.fast_shutdown=1'; \ 
     echo 'opcache.enable_cli=1'; \ 
    } > /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini 

RUN { \ 
     echo 'extension=apcu.so'; \ 
     echo 'extension=apc.so'; \ 
     echo 'apc.enabled=1'; \ 
     echo 'apc.shm_size=256M'; \ 
     echo 'apc.ttl=7200'; \ 
     echo 'apc.enable_cli=1'; \ 
     echo 'apc.gc_ttl=3600'; \ 
     echo 'apc.entries_hint=4096'; \ 
     echo 'apc.slam_defense=1'; \ 
     echo 'apc.serializer=php'; \ 
    } > /usr/local/etc/php/conf.d/docker-php-ext-apc.ini 

のphpinfo():たぶん

enter image description here

ドッキングウィンドウの問題?またはSymfonyの問題。

答えて

2

私はmongodbでPHP 7を使用しており、symfonyとdockerも使用しています。私が持っている唯一の問題は、インストールする必要のあるPHP拡張モジュールがmongoの代わりにmongodbだということです。 mongodb拡張をインストールした後、すべて正常に動作します。ここ

そして、私の作曲である必要は:

"require": { 
    "doctrine/mongodb-odm": "^1.1.0", 
    "doctrine/mongodb-odm-bundle": "^3.1.0", 
    "alcaeus/mongo-php-adapter": "^1.0.0", 
    "ext-mongo": "*" 
} 

作曲をインストールするとき、それはまだ失敗する場合は、あなたの作曲の下に次の行を追加します

"provide": { 
    "ext-mongo": "1.6.13" 
} 

を必要とし、それは

+0

感謝をお役に立てば幸いです。私はあなたのリポジトリのバージョンで私のcomposer.jsonを更新しました。しかし、私はいくつか問題があります。最初に、「mongodb/mongodb」:「^ 1.0.0」、 「alcaeus/mongo-php-adapter」:「^ 1.0」、 「ext-mongo」:「*」 'の依存関係を追加する必要がありました。しかし、私はまだ問題があります。 'mongodb/mongodb 1.0.2には、ext-mongodb^1.1.0 - >要求されたPHP拡張モジュールmongodbが必要です。 Mongodbは私のMacにインストールされていません。ドッカーでのみ。 –

+0

私は自分の答えを更新しました。まず、ドッカーの外でコンポーザーをインストールしていますか?実際には、必要なdepedenciesがdockerにインストールされているため、docker内でコンポーザーをインストールする必要があります。 –

関連する問題