我有一個在Docker容器中運行的REST API的Symfony應用程序。MongoDB不能在Docker中使用Symfony應用程序
所有路線的作品,但是當我試圖訪問一個路由數據庫,從數據庫中添加信息或提取信息,我收到
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.
泊塢窗,撰寫文件創建的*與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
*我試圖添加鏈接到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)
- 這是確定
code-php-fpm | 172.19.0.4 - 22/Apr/2017:23:24:52 +0000 "GET /app.php" 200
登錄,當我試圖訪問一個網址(localhost:8000/transactions/user=invalid&day=1492453903&threshold=100)
有效,但與無效數據 - 這是確定
code-php-fpm | 172.19.0.4 - 22/Apr/2017:23:23:32 +0000 "GET /app.php" 400
當我嘗試接受日誌時SS的URL (localhost:8000/transactions/user=100&day=1492453903&threshold=100)
與來自Mongo的數據庫中插入一個有效的數據有效 - 也不行
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。我在帖子中發佈了日誌。我該怎麼做? –
它仍然試圖連接到「localhost:27017」而不是「mongo:27017」。你可以發佈你的'app/config/config.yml'文件嗎? – saada