【发布时间】:2019-06-19 20:54:54
【问题描述】:
我想将一项服务部署到弹性 beanstalk 中的环境中。如果我想在本地构建它,我会使用这一行:
docker run --detach --name my-nlx-inway (some env en volume parameters) --publish 4443:8443 nlxio/inway:latest
我已经尝试在 Dockerfile 中设置所有这些:
FROM nlxio/inway:latest
ENV NAME my-nlx-inway
EXPOSE 4443
当我部署一切顺利时,我的服务已注册,只是它显示为离线。我认为它在映射中。
使用命令我说--publish 4443:8443,在Dockerfile中我只说EXPOSE 4443。
所以我尝试构建一个dockerrun.aws.json
{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": 8443,
"HostPort":4443
}
]
}
我使用配置文件添加了映射:
container_commands:
00001_add_mapping:
command: 'sed -i "s/docker run -d/docker run -p 4443:8443 -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
我在日志中看到了结果:
'docker ps' ran at Tue Jun 11 12:20:02 UTC 2019:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
741a52caf467 f06676e20291 "/usr/local/bin/nlx-…" 11 minutes ago Up 11 minutes 4443/tcp, 0.0.0.0:4443->8443/tcp optimistic_johnson
【问题讨论】:
-
你确定标签 Ports 是正确的吗?快速谷歌搜索显示:
"portMappings": [ { "hostPort": 80, "containerPort": 80 }portMappings 将容器上的网络端口映射到主机上的端口。 ====更新===== reddit.com/r/aws/comments/5qubwx/… 也许您还需要做一些额外的调整以使其正常工作。查看 reddis 上关于 elb、.ebextension 设置的评论 -
Portmappings 与多容器一起使用,我使用单容器。我会尝试 tweeking .ebextensions,看起来很有希望!
-
我认为 tweeking 工作正常(这意味着我可以看到我所做的更改,但尚未注册)但我不确定映射的 '0.0.0.0:' 部分。我编辑了我的问题。
标签: amazon-web-services docker amazon-elastic-beanstalk