Dockerコンテナで実行されるREST API用のSymfonyアプリケーションがあります。DockerのsymfonyアプリケーションでMongoDBが動作しない
すべてのルートがPHPDockerで作成されたドッキングウィンドウ・コンファイル*は
version: "3.1"
services:
mongo:
image: mongo:3.0
container_name: mongo
command: mongod --smallfiles
expose:
- 27017
webserver:
tty: true
image: phpdockerio/nginx:latest
container_name: code-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8000:80"
php-fpm:
build:
context: .
dockerfile: phpdocker/php-fpm/Dockerfile
container_name: code-php-fpm
### MOVE ENVIRONMENT VARIABLES HERE
environment:
SYMFONY__MONGO_ADDRESS: mongo
SYMFONY__MONGO_PORT: 27017
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php5/fpm/conf.d/99-overrides.ini
ある
Oops! An Error Occurred
The server returned a "500 Internal Server Error".
Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.
に動作しますが、私は、データベース内の情報を追加したり、データベースから情報を抽出する経路にアクセスしようとしたとき、私はメッセージを受け取ります
* mongoイメージへのリンクを追加しようとしましたが、動作しません。
コマンドの結果docker-compose up
。
PS E:\API\web_server\code> docker-compose up
Starting code-php-fpm
Starting mongo
Starting code-webserver
Attaching to mongo, code-php-fpm, code-webserver
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/
db 64-bit host=5c9a4a252688
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] db version v3.0.14
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] git version: 08352afcca24bfc145240a0fac9d28b978ab
77f3
code-php-fpm | [22-Apr-2017 23:11:52] NOTICE: fpm is running, pid 5
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] build info: Linux ip-10-30-223-232 3.2.0-4-amd64
#1 SMP Debian 3.2.46-1 x86_64 BOOST_LIB_VERSION=1_49
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] allocator: tcmalloc
code-php-fpm | [22-Apr-2017 23:11:52] NOTICE: ready to handle connections
mongo | 2017-04-22T23:11:52.947+0000 I CONTROL [initandlisten] options: { storage: { mmapv1: { smallFiles: true
} } }
code-php-fpm | [22-Apr-2017 23:11:52] NOTICE: systemd monitor interval set to 10000ms
mongo | 2017-04-22T23:11:52.959+0000 I JOURNAL [initandlisten] journal dir=/data/db/journal
mongo | 2017-04-22T23:11:52.959+0000 I JOURNAL [initandlisten] recover : no journal files present, no recovery n
eeded
mongo | 2017-04-22T23:11:53.395+0000 I JOURNAL [durability] Durability thread started
mongo | 2017-04-22T23:11:53.395+0000 I JOURNAL [journal writer] Journal writer thread started
mongo | 2017-04-22T23:11:53.653+0000 I NETWORK [initandlisten] waiting for connections on port 27017
ログは、私は、アプリケーションから簡単なページ(localhost:8000)
にアクセスしようとしたとき - 私は(localhost:8000/transactions/user=invalid&day=1492453903&threshold=100)
有効ですが、無効なデータでURLにアクセスしようとしたとき、それはOK
code-php-fpm | 172.19.0.4 - 22/Apr/2017:23:24:52 +0000 "GET /app.php" 200
ログだ - それは大丈夫だ
code-php-fpm | 172.19.0.4 - 22/Apr/2017:23:23:32 +0000 "GET /app.php" 400
私がアクセルしようとしたときのログSSのmongoデータベースの挿入から有効なデータを持つ有効なURL (localhost:8000/transactions/user=100&day=1492453903&threshold=100)
- OKではありません
code-php-fpm | 172.19.0.4 - 22/Apr/2017:23:13:09 +0000 "GET /app.php" 500
'parameters.yml' ファイル
# This file is auto-generated during the composer install
parameters:
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: root
database_password: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
secret: ThisTokenIsNotSoSecretChangeIt
mongodb_server: 'mongodb://mongo:27017'
config.yml
ファイルが
doctrine_mongodb:
connections:
default:
server: "%mongodb_server%"
options: {}
default_database: hootsuite_database
document_managers:
default:
mappings:
DBBundle: ~
が含まれています
Symfonyプロジェクトのログ:
[2017-04-23 07:03:25] request.INFO: Matched route "db_transaction_gettransactions". {"route":"db_transaction_gettransactions","route_parameters":{"_controller":"DBBundle\\Controller\\TransactionController::getTransactionsAction","_route":"db_transaction_gettransactions"},"request_uri":"http://localhost:8000/transactions/?day=1492453903&threshold=123&user=500","method":"GET"} []
[2017-04-23 07:03:25] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2017-04-23 07:03:25] request.CRITICAL: Uncaught PHP Exception MongoConnectionException: "Failed to connect to: localhost:27017: Connection refused" at /application/vendor/doctrine/mongodb/lib/Doctrine/MongoDB/Connection.php line 282 {"exception":"[object] (MongoConnectionException(code: 71): Failed to connect to: localhost:27017: Connection refused at /application/vendor/doctrine/mongodb/lib/Doctrine/MongoDB/Connection.php:282)"} []
Robomongoでデータベースを表示しようとすると、localhost:27017
が動作します。
アドバイスはありますか? ありがとう!
500は内部サーバーエラーを意味します。私はSymfonyからログが抜けていると思います... '/ project/var/logs'をチェックしましたか? – saada
このアプリはMongoDBに接続できません。私はその投稿を投稿した。私はそれをどのようにすることができますか? –
"mongo:27017"の代わりに "localhost:27017"に接続しようとしています。 'app/config/config.yml'ファイルを投稿できますか? – saada