我正在我的项目中使用AWS SQS。我想使用这个进行本地安装。为了SQS的目的,我在我的项目中添加了dokcer_local。
我已经更新了docker文件,添加了这个链接中的建议。
FROM java:8
ADD https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-0.13.8.jar /
COPY custom.conf /
ENTRYPOINT ["/usr/bin/java", "-Dconfig.file=custom.conf", "-jar", "/elasticmq-server-0.13.8.jar"]
EXPOSE 9324
CMD ["-help"]
当我执行命令docker ps
时,我的屏幕上出现了这个
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e934fc6c43 mysql:5.7.16 "docker-entrypoint.s…" 24 minutes ago Up 24 minutes 0.0.0.0:10612->3306/tcp xyz_mysql_1
0af050bd3332 vsouza/sqs-local "/usr/bin/java -Dcon…" 2 hours ago Up 2 hours 0.0.0.0:9324->9324/tcp wizardly_yalow
我已经在我的docker-compose.yml文件中添加了sqs条目,如下所示:
sqs:
image: s12v/elasticmq
ports:
- "9324:9324".
现在我无法理解如何在我的控制台上使用sqs。在使用此命令sudo docker exec -it 0af050bd3332 sh
进入sqs的shell后。当我尝试列出队列时,它正在打印sh: 2: list-queues: not found
错误。
我试过很多方法,但似乎都不起作用。
2条答案
按热度按时间rdrgkggo1#
您的Dockerfile正在创建一个ElasticMQ服务器。后者是一个与SQS兼容的"message queue system"。因此,您可以像使用SQS一样使用它,只是在使用AWS CLI或SDK时必须更改
endpoint
参数。让我们在这里做一个交互式示例:
1.运行以下Docker命令:
1.现在,在另一个选项卡中,执行以下AWS CLI命令(请注意,
--endpoint
参数指向上面创建的本地运行的ElasticMQ服务器):结果应为空。
1.现在尝试创建一个队列:
1.现在再次执行
list-queues
,注意您有了一个新队列:希望这对你有帮助!
拉菲德
g6ll5ycj2#
在我们的项目中,我们在docker中运行Localstack,它包含所有可用的AWS服务。
非常容易使用,here是一个示例docker合成文件