Почему я получаю сообщение "ERR_CONNECTION_REFUSED" при запросе серверной частью, размещенной на sidecar, в службе приложений Azure?

Я пытаюсь развернуть довольно простое веб-приложение в службе приложений Azure. У меня есть серверный образ (под управлением django + graphql) и внешний образ (под управлением vue + apollo), и когда я запускаю их локально либо отдельно, либо через docker-compose, это работает без проблем.

Как только я развертываю приложение в Azure App Service, используя интерфейс в качестве основного контейнера, а серверную часть в качестве вспомогательной, я получаю сообщение "ERR_CONNECTION_REFUSED", когда Apollo запрашивает graphql api в серверной части.

Apollo-конфигурация

import {
    ApolloClient,
    InMemoryCache,
} from "@apollo/client/core";
import { createApolloProvider } from "@vue/apollo-option";
import createUploadLink from "apollo-upload-client/createUploadLink.mjs";

const httpLink = createUploadLink({
  uri: "http://localhost:8080/graphql",
});

// Cache implementation
const cache = new InMemoryCache();

// Create the apollo client
export const apolloClient = new ApolloClient({
  link: httpLink,
  cache,
});

export const ApolloProvider = createApolloProvider({
  defaultClient: apolloClient,
});

Docker compose

services:
  backend:
    container_name: backend
    build: 
      context: ./backend
    ports:
      - "8080:8080"
  frontend:
    container_name: vue_frontend
    build:
      context: ./vue
    ports:
      - "80:80"

Файл dockerfile внешнего интерфейса

FROM node:22.14-alpine

RUN npm install -g http-server 

WORKDIR /vue

COPY package*.json ./
COPY .npmrc .npmrc

RUN --mount=type=secret,id=npmrc,target=.npmrc npm install

COPY . .

EXPOSE 80 8080

CMD ["npm", "run", "dev", "--", "--port", "80", "--host"]

Серверный файл dockerfile

FROM python:3.10-slim

RUN mkdir /backend 

WORKDIR /backend

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED = 1

RUN pip install --upgrade pip --trusted-host pypi.org

COPY requirements.txt /backend/

RUN apt-get update && \
    apt-get install -y libpq-dev gcc

RUN pip install --no-cache-dir -r requirements.txt --trusted-host pypi.org

COPY . /backend/

EXPOSE 8080 80

CMD ["daphne", "-b", "0.0.0.0", "-p", "8080", "backend.asgi:application"]

Единственное, что до сих пор "работало", - это запуск серверной части локально, и тогда приложение будет получать данные. Это говорит о том, что я на самом деле запрашиваю веб-сайт с кодом apollo, а не что-либо на сетевом хосте.

Из документации: localhost:<port> должно быть достаточно

MS-коляска-самоучитель

Я пробовал указывать разные адреса в uri в apollo-config, но если я попробую вместо этого "localhost:8000", я просто получу сообщение об ошибке, что схема localhost не поддерживается.

И если я попробую "<app-url>/graphql", я просто получу 404

Вернуться на верх