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

Azure Web App部署Docker Compose多容器应用失败,无日志求助

Azure Web App多容器部署故障排查

我已按照微软教程成功部署无数据库的Web应用到Azure Web App,现在尝试部署自研的Java Telegram回声应用(接收Telegram消息并存储至MySQL),选择Azure Web App的Docker Compose部署方式。

初始配置

docker-compose-az.yml

version: '3'

services:
  db:
    image: mysql:oraclelinux9
    environment:
      MYSQL_DATABASE: echo
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql
      - ./mysql:/docker-entrypoint-initdb.d/

  app:
    image: app
    build:
      context: .
      dockerfile: DockerfileAZ
    depends_on:
      - db

volumes:
  db_data:

DockerfileAZ

FROM --platform=linux/amd64 eclipse-temurin:17-jdk

RUN mkdir -p /opt/app/lib

COPY ServerToyProject.jar /opt/app/
COPY lib/* /opt/app/lib/

RUN echo "done: target/lib/* /opt/app/lib/"

WORKDIR /opt/app

CMD ["java", "-cp", "ServerToyProject.jar:lib/*:.", "main.Echo"]

RUN echo "done: java executed"

Azure部署命令

az webapp create --resource-group resource-group-echo --plan app-service-plan-echo --name tmp2 --multicontainer-config-type compose --multicontainer-config-file docker-compose-az.yml

(注:资源组和应用服务计划已提前创建)

出现的问题

  • 部署中心日志页无任何日志显示
  • 应用无法正常启动运行

补充信息:

  • 本地通过Docker Compose启动应用完全正常
  • 偶尔能在部署中心看到日志,提示卷路径存在问题
  • 不确定Registry source与server URL的配置是否正确

调整后的配置方案

我将镜像推送至Azure容器注册表,重新构建镜像:

Dockerfile.mysql

FROM mysql:oraclelinux9
COPY ./mysql/*.sql /docker-entrypoint-initdb.d/
ENV MYSQL_DATABASE=echo
ENV MYSQL_ROOT_PASSWORD=password

DockerfileAZ

FROM eclipse-temurin:17-jdk

RUN mkdir -p /opt/app/lib

COPY ServerToyProject.jar /opt/app/
COPY lib/* /opt/app/lib/

WORKDIR /opt/app

CMD ["java", "-cp", "ServerToyProject.jar:lib/*:.", "main.Echo"]

修改后的docker-compose-az.yml

services:
  db:
    image: registrytmp.azurecr.io/sqlaz:latest
    environment:
      MYSQL_DATABASE: echo
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

  app:
    image: registrytmp.azurecr.io/fromdockerfileaz:latest
    depends_on:
      - db

volumes:
  db_data:

调整说明:将SQL脚本放入MySQL镜像的Dockerfile中执行,解决了本地目录路径映射的问题,同时使用Azure容器注册表托管镜像。

该配置在IntelliJ中运行正常,但部署到Azure Web App仍失败;即使配置为无效内容,部署中心也无任何日志输出。

Azure部署中心无日志显示截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:26:05