Веб-интерфейс доступен, остальные API не работает.
я очень похожий вопросэтот.
У меня есть приложение Angular, которое собирает данные, которые затем обрабатываются через REST Api. Я могу с радостью докеризировать оба приложения, и они хорошо работают локально, однако, когда я пытаюсь развернуть их, чтобы сделать их доступными «везде», я могу добраться только до внешнего интерфейса, но соединение с REST Api не работает.
Внутри моего приложения Angular у меня есть файлbaseurl.ts
, Это просто содержит:
export const baseURL = 'http://localhost:3000/';
Я делаю производство приложений готовым, используя:
ng build --prod
который создаетdist
папку, а затем следующий док-контейнер (взят изВот):
FROM node:alpine AS builder
ARG PROXY=http://myproxy
ARG NOPROXY=localhost,127.0.0.1
ENV http_proxy=${PROXY}
ENV https_proxy=${PROXY}
ENV NO_PROXY=${NOPROXY}
ENV no_proxy=${NOPROXY}
WORKDIR /app
COPY . .
RUN npm install && \
npm run build
FROM nginx:alpine
COPY --from=builder /app/dist/* /usr/share/nginx/html/
Я строю контейнер, используя
docker build -t form_angular:v1
и запустить его с помощью
docker run -d -p8088:80 form_angular:v1
СекундаDockerfile
для REST Api выглядит так:
FROM continuumio/miniconda3
ARG PROXY=http://myproxy
ARG NOPROXY=localhost,127.0.0.1
ENV http_proxy=${PROXY}
ENV https_proxy=${PROXY}
ENV NO_PROXY=${NOPROXY}
ENV no_proxy=${NOPROXY}
COPY my_environment.yml my_environment.yml
SHELL ["/bin/bash", "-c"]
RUN echo "Using proxy $PROXY" \
&& touch /etc/apt/apt.conf \
&& echo "Acquire::http::Proxy \"$PROXY\";" >> /etc/apt/apt.conf \
&& cat /etc/apt/apt.conf \
&& apt-get -q -y update \
&& DEBIAN_FRONTEND=noninteractive apt-get -q -y upgrade \
&& apt-get -q -y install \
build-essential \
&& apt-get -q clean \
&& rm -rf /var/lib/apt/lists/*
RUN ["conda", "env", "create", "-f", "my_environment.yml"]
COPY user_feedback.py user_feedback.py
CMD source activate my_environment; gunicorn -b 0.0.0.0:3000 user_feedback:app
Строительство:
docker build -t form_rest:latest .
Бег:
docker run --name form_rest -d -p 3000:3000
Как я уже сказал, все работает как положено при запуске наlocalhost
, Как мне теперь заставить эти два контейнера общаться друг с другом для «глобального» развертывания?