|
|
|
FROM python:3.11 AS base |
|
|
|
|
|
FROM base AS builder |
|
|
|
|
|
WORKDIR /usr/src/app |
|
|
|
|
|
COPY ./requirements.txt /usr/src/app |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
gcc \ |
|
libffi-dev \ |
|
libssl-dev \ |
|
libxml2-dev \ |
|
libxslt1-dev \ |
|
build-essential \ |
|
cargo \ |
|
rustc \ |
|
python3.11-dev \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN pip install --no-cache-dir --upgrade pip setuptools wheel |
|
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt |
|
|
|
|
|
FROM base |
|
|
|
|
|
RUN groupadd -r appgroup && useradd -r -g appgroup appuser |
|
USER appuser |
|
WORKDIR /usr/src/app |
|
|
|
|
|
|
|
COPY --from=builder /install /usr/local |
|
|
|
|
|
COPY . . |
|
COPY .env /usr/src/app/.env |
|
|
|
|
|
RUN mkdir -p /usr/src/app \ |
|
&& chmod 777 /usr/src/app |
|
|
|
|
|
RUN flask db init || true |
|
RUN flask db migrate || true |
|
|
|
|
|
|
|
RUN mkdir -p /usr/src/app/app.db \ |
|
&& chmod 777 /usr/src/app/app.db |
|
|
|
|
|
CMD flask db upgrade && gunicorn -b 0.0.0.0:5000 -w 4 yotter:app |
|
|
|
|
|
EXPOSE 5000 |
|
|