Aurelia、Docker、Nginx、AWS Elastic Beanstalk 显示 502 错误网关
Aurelia, Docker, Nginx, AWS Elastic Beanstalk Showing 502 Bad Gateway
我已经通过 AWS ECR 将 Aurelia 应用程序部署到 AWS Elastic Beanstalk,但 运行 遇到了一些困难。 docker 容器在本地 运行 时完美运行(请参阅下面的 Dockerfile)。
FROM nginx:1.15.8-alpine
COPY dist /usr/share/nginx/html
部署工作得很好,但是当我导航到 AWS 提供的端点时 http://docker-tester.***.elasticbeanstalk.com/
我得到 502 Bad Gateway
nginx/1.12.1
.
我不知道可能是什么问题。 docker 容器是通过 au new
命令创建的一个简单的 Hello World 示例;一点都不花哨。
下面是我的Dockerrun.aws.json文件
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "***.dkr.ecr.eu-central-1.amazonaws.com/tester:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8080"
}
],
"Logging": "/var/log/nginx"
}
我的 Elastic Beanstalk 配置相当小,EC2 实例类型为 t2.micro
。我正在使用免费套餐作为学习的机会。
非常感谢任何帮助,或链接到一些可能指向正确方向的阅读材料。
与你的aurelia应用无关。您在 Dockerfile
中缺少 EXPOSE
语句(这是强制性的)。你可以这样改。
FROM nginx:1.15.8-alpine
EXPOSE 80
COPY dist /usr/share/nginx/html
如果您在没有 EXPOSE
的情况下尝试 运行 它,您将得到一个错误
ERROR: ValidationError - The Dockerfile must list ports to expose on the Docker container. Specify at least one port, and then try again.
您应该在将应用程序推送到 ElasticBeanstalk 之前对其进行测试
安装eb cli
(假设你有pip
,如果没有那么你也需要安装它)
pip install awsebcli --upgrade --user
然后为部署初始化本地存储库
eb init -p docker <application-name>
你可以测试一下
eb local run --port <port-number>
我已经通过 AWS ECR 将 Aurelia 应用程序部署到 AWS Elastic Beanstalk,但 运行 遇到了一些困难。 docker 容器在本地 运行 时完美运行(请参阅下面的 Dockerfile)。
FROM nginx:1.15.8-alpine
COPY dist /usr/share/nginx/html
部署工作得很好,但是当我导航到 AWS 提供的端点时 http://docker-tester.***.elasticbeanstalk.com/
我得到 502 Bad Gateway
nginx/1.12.1
.
我不知道可能是什么问题。 docker 容器是通过 au new
命令创建的一个简单的 Hello World 示例;一点都不花哨。
下面是我的Dockerrun.aws.json文件
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "***.dkr.ecr.eu-central-1.amazonaws.com/tester:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8080"
}
],
"Logging": "/var/log/nginx"
}
我的 Elastic Beanstalk 配置相当小,EC2 实例类型为 t2.micro
。我正在使用免费套餐作为学习的机会。
非常感谢任何帮助,或链接到一些可能指向正确方向的阅读材料。
与你的aurelia应用无关。您在 Dockerfile
中缺少 EXPOSE
语句(这是强制性的)。你可以这样改。
FROM nginx:1.15.8-alpine
EXPOSE 80
COPY dist /usr/share/nginx/html
如果您在没有 EXPOSE
的情况下尝试 运行 它,您将得到一个错误
ERROR: ValidationError - The Dockerfile must list ports to expose on the Docker container. Specify at least one port, and then try again.
您应该在将应用程序推送到 ElasticBeanstalk 之前对其进行测试
安装eb cli
(假设你有pip
,如果没有那么你也需要安装它)
pip install awsebcli --upgrade --user
然后为部署初始化本地存储库
eb init -p docker <application-name>
你可以测试一下
eb local run --port <port-number>