Tag: 主机

将AWS sdks的默认端点redirect到模拟的localstack端点

我有多个Java Spring引导服务(其中大约20个)使用S3,SQS,DynamoDB等的Amazon SDK。 目前,要使用Amazon Web Service,我只需要指定我的AWS密钥和秘密。 ACCESS_AWS_KEY=<MY_KEY> ACCESS_AWS_SECRET=<MY_SECRET> 但是,我想设置离线开发环境,所以我开始dockerize我的服务,并build立一个多docker容器与我所有的服务dockerized和localstack应该被用来代替远程AWS服务,以允许完成离线开发。 docker-compose.yml看起来像这样 version: '3' services: service_1: build: ./repos/service_1 links: – service_2: – localstack service_2: build: ./repos/service_2 links: – localstack service_3: build: ./repos/service_3 links: – localstack localstack: image: localstack/localstack Amazon SDK提供AWS_REGION envvariables,但不能提供可轻松用于所有服务的端点环境variables。 我也不想在我的服务中进行代码更改以适应新的非默认端点。 我想要一个通用的解决scheme来转发这样的请求: dynamodb.eu-west-1.amazonaws.com => localstack_1:4569 s3-eu-west-1.amazonaws.com => localstack_1:4572 localstack_1是localstack的链接容器,可以被其他容器访问。 我遇到了extra_hosts:在docker -compose中,但它只是redirect到IP,没有主机名parsing。 另外请注意,我有几十个端口从4569到4582暴露在localstack中。 我曾想过在每台机器上运行一个脚本,以某种方式设置一个虚拟主机,或者将所有的传出连接从所有容器转发到一个集中的请求转发器服务,但是不知道从哪里开始。 这只会用作脱机开发环境,不会收到任何实际的stream量。

Docker容器无法parsinglocalhost

我有一个从头开始构build的docker镜像,而不是基于像centos或ubuntu这样的现有镜像。 机器上的进程似乎无法parsinglocalhost或机器主机名,即使两者的映射都存在于/etc/hosts 。 以下是容器上的/etc/hosts文件(由docker生成)的样子: 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 39b50fcb603a 比方说,我想用telnet(其他命令同样失败)连接到端口80。 $ telnet 127.0.0.1 80 Trying 127.0.0.1… telnet: connect to address 127.0.0.1: Connection refused 这很好,因为我没有在端口80上运行任何东西。但是,让我们说我使用localhost : $ telnet localhost 80 telnet: localhost: Name or service not known localhost: Unknown host 这没有任何意义,因为从127.0.0.1到localhost的映射是在/etc/hosts 。 同样,使用容器的主机名(由docker设置)也失败: $ telnet […]