You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure上用Docker Compose部署应用时端口绑定异常问题咨询

Azure Docker Compose预览版端口绑定问题解决

问题分析

你在docker-compose.yml里给backend服务配置了8080:8080的端口映射,但Azure App Service的Docker Compose预览版会自动替换主机端口为随机值,这是平台的默认行为——它需要统一管理应用的网络入口,不允许用户固定主机端口,导致你的端口绑定配置失效,应用无法正常运行。

解决方案

1. 修改docker-compose.yml的端口配置

去掉主机端口的固定值,只保留容器内部端口,或者用0:8080让平台自动分配主机端口,同时添加环境变量告知Azure容器监听的端口:

version: "3"
services: 
  backend: 
    image: spring-backend
    ports:
      - '8080'  # 仅指定容器内部端口,平台自动分配主机端口
      # 也可写成 - '0:8080'
    environment:
      - WEBSITES_PORT=8080  # 告诉Azure容器内服务的监听端口
  angular: 
    image: angular 
    container_name: angular

2. 调整前后端通信方式

由于两个服务处于同一个Docker Compose网络中,前端可以直接通过服务名backend访问后端API,无需使用主机端口。比如前端的API请求地址可写为http://backend:8080/api/xxx。

3. 手动配置环境变量(可选)

如果不想在docker-compose.yml中添加环境变量,也可以登录Azure门户,进入你的App Service,在配置->应用程序设置中手动添加WEBSITES_PORT变量,值设为8080,确保Azure识别容器内的服务端口。

内容的提问来源于stack exchange,提问作者O Estudante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:28:08