【发布时间】:2020-06-29 05:40:21
【问题描述】:
我有一个使用 PHP、Nginx 和 dynamodb 开发的应用程序。我已经创建了一个简单的 docker-compose 在本地工作。
version: '3.7'
services:
nginx_broadway_demo:
container_name: nginx_broadway_demo
image: nginx:latest
ports:
- 8080:80
volumes:
- ./www:/var/www
- ./docker/nginx/vhost.conf:/etc/nginx/conf.d/default.conf
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
links:
- php_fpm_broadway_demo
php_fpm_broadway_demo:
container_name: php_fpm_broadway_demo
build:
context: ./docker/php
ports:
- 9000:9000
volumes:
- .:/var/www/web
dynamodb:
image: amazon/dynamodb-local
ports:
- 8000:8000
expose:
- 8000
现在我需要添加 dynamodb URL 参数以允许 PHP 对数据库进行查询。 所以,如果我像这样从 PHP docker 容器发出 ping 效果很好:
ping dynamodb
这不起作用。
ping http://dynamodb:8000
我需要使用 http://dynamodb:8000,因为 AWS 需要一个 URI,因为如果我使用 http://dynamodb:8000 会出现此错误:
Endpoints must be full URIs and include a scheme and host
那么:如何像 URL 一样调用 docker 容器?
我尝试过使用 docker-compose 参数,例如:depends、links、network,但没有成功
【问题讨论】:
-
ping http://dynamodb:8000- 这对任何方案或端口都不起作用,因为您 ping 主机,而不是端口,绝对不是 http。 -
好的,那么我该如何解决需要完整 URI 并包含方案和主机的 aws 问题?我认为这是可能的,但现在我不知道该怎么做。
-
您的 PHP 应用程序应该能够在
http://dynamodb:8000上与 Dynamo 通信。见docs.aws.amazon.com/amazondynamodb/latest/developerguide/… -
我不用部署应用,我现在需要在本地工作。
-
我们可以把它移到聊天中吗?我可能对你们有一些想法
标签: php amazon-web-services docker docker-compose amazon-dynamodb