使用Docker将Angular2部署到Azure容器实例-无法访问应用

时间:2018-07-19 11:43:23

标签: angular docker azure-container-instances

通过以下步骤创建了一个简单的angular2应用程序:

npm install -g angular-cli
ng new demo2 (If packages are not getting installed go to demo2 folder and 
execute npm install)
ng server
Navigate to localhost:4200(app works!!!!)

角度代码没有任何变化!!!!

在应用程序的根目录中添加了一个Dockerfile和.dockerignore 这是我的Dockerfile文件内容:

  FROM nginx
  COPY dist /usr/share/nginx/html
  EXPOSE 82

创建了图像和容器,并能够通过以下步骤在本地运行该应用程序:

ng build --prod
docker build -t angulardockertest:v1 .
docker images
docker run -p 82:80 -it angulardockertest:v1
Navigate to localhost:82   (app works!!!!)

下一步,我将图像推送到Azure容器注册表,并通过以下步骤从中创建一个容器实例(端口号为82):

docker login pocdockerregistry.azurecr.io
docker tag angulardockertest:v1 pocdockerregistry.azurecr.io/angulardockertest:v1
docker push pocdockerregistry.azurecr.io/angulardockertest:v1

现在,当我尝试访问它(ipaddress:port#)时,出现以下错误: 无法访问此站点。拒绝连接。

有人可以帮助我解决我想念/做错的事情吗?

2 个答案:

答案 0 :(得分:0)

首先使用curl localhost:port检查应用程序在azure服务器上是否运行正常。
如果上述方法可行,则要从本地系统访问,请检查是否已为azure服务器系统分配了公共IP,并使用http协议打开了防火墙端口。

答案 1 :(得分:0)

您实际上运行过“ az container create”命令来在Azure中创建容器吗?

我在docker中运行的node.js服务器应用程序面临类似的问题。如果将其部署到Azure App Service,则可以访问,但是如果将其部署到Azure容器实例,则无法通过组织的网络访问它。即使禁用防火墙后,我也无法访问它。 Curl也无法访问它。

它仅在我的组织网络之外起作用,因此我需要与IT部门联系。如果您尝试从组织的网络或公共网络访问它,可以共享吗?

我已与Microsoft支持人员联系,并且无法从我的组织网络访问它们正在运行的示例ACI应用程序,因此这不是应用程序问题。

此外,尝试将其作为Dockerfile中的启动命令:

ng serve --host 0.0.0.0