Комментарии 10
Очень понравилась статья. И про docker и про nginx, базовые сведения в хорошо изложенном материале.
+2
Я бы таки поменял местами
Чтобы docker layers кешировались и не нужно было каждый раз переустанавливать зависимости.
COPY . /app
RUN pip install -r requirements.txt
# VVV
RUN pip install -r requirements.txt
COPY . /app
Чтобы docker layers кешировались и не нужно было каждый раз переустанавливать зависимости.
+4
А как можно установить зависимости, если файл requirements.txt ещё не скопирован?
+1
Справедливо, тогда вот:
Как раз именно так рекомендует собирать сам Docker.
Из минусов — дважды будем копировать requirements.txt, но переживем)
FROM python:3.8
EXPOSE 8080
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
Как раз именно так рекомендует собирать сам Docker.
Из минусов — дважды будем копировать requirements.txt, но переживем)
+1
Очень полезное замечание, спасибо!)
Или вот аналогичный пример для poetry
Или вот аналогичный пример для poetry
FROM python:3.8
WORKDIR app
EXPOSE 8080
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
ENV PATH="${PATH}:/root/.poetry/bin"
COPY poetry.lock pyproject.toml /app/
RUN poetry config virtualenvs.create false && poetry install
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
0
Да, прикольно. Метод кажется немного противоестественным для приложения, но гораздо лучше для докера. Запомню эту технику.
0
Всё коротко и чётко, мне нравится.
0
подключим приложение web и nginx к новой сети my-app
в коде app-net
networks:
app-net:
driver: bridge
0
> это особый вид балансировки нагрузки, при которой трафик поступает на один определенный сервер группы
Для всех? Если да, то зачем были нужны остальные сервера?
Каким образом производится переброс нагрузки, если начальный целевой сервер вышел из строя?
Если же делится по сессии, то как производится это разделение и чем оно управляется?
Без введения с разъяснением этих вопросов —
Обычно тут принято рассказывать такие вещи хотя бы вкратце.
Для всех? Если да, то зачем были нужны остальные сервера?
Каким образом производится переброс нагрузки, если начальный целевой сервер вышел из строя?
Если же делится по сессии, то как производится это разделение и чем оно управляется?
Без введения с разъяснением этих вопросов —
Обычно тут принято рассказывать такие вещи хотя бы вкратце.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Липкие сессии для самых маленьких [Часть 1]