我有一个要部署到弹性beantalk中的环境中的服务。如果要在本地构建它,请使用以下行:
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
答案 0 :(得分:0)
好的,除了添加带有配置文件的映射外,我还需要添加一个侦听器。 所以我的最终结构如下:
- .ebextensions
|-commands.config
- Dockerfile
我的commands.config
看起来像这样:
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'
option_settings:
aws:elb:listener:4443:
ListenerProtocol: TCP
InstancePort: 4443