summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2024-05-12 22:35:11 +0800
committerMole Shang <[email protected]>2024-05-12 22:35:11 +0800
commitd5a1125b6b86e1fe4e8fb6819b69b985cae70f84 (patch)
tree60c6807a530b2cca01439a4b656c891830a3d007 /Dockerfile
parent1a4c98d14f5b436b6f7e240c99980c5d5c315490 (diff)
downloadATRI-d5a1125b6b86e1fe4e8fb6819b69b985cae70f84.tar.gz
ATRI-d5a1125b6b86e1fe4e8fb6819b69b985cae70f84.tar.bz2
ATRI-d5a1125b6b86e1fe4e8fb6819b69b985cae70f84.zip
merge #95
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile46
1 files changed, 28 insertions, 18 deletions
diff --git a/Dockerfile b/Dockerfile
index 2694202..4e18bd9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,23 +1,33 @@
-FROM flyingjoe/uvicorn-gunicorn-fastapi:python3.9-slim
-
-WORKDIR /app
-
-ENV PATH="${PATH}:/root/.local/bin"
-
-ADD . /app/
-
-EXPOSE 20000
-
-RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && rm -Rf /var/lib/apt/lists/* && apt-get update
-
-RUN apt install curl -y
-
-RUN curl -sSL https://install.python-poetry.org | python3 -
-
-RUN /usr/local/bin/python -m pip install --no-cache-dir --upgrade --quiet pip
-
+FROM sunpeek/poetry:py3.10-slim as base
+# python
+ENV PYTHONUNBUFFERED=1 \
+ # prevents python creating .pyc files
+ PYTHONDONTWRITEBYTECODE=1 \
+ \
+ POETRY_VERSION=1.1.4 \
+ # make poetry install to this location
+ POETRY_HOME="/opt/poetry" \
+ POETRY_VIRTUALENVS_IN_PROJECT=true \
+ POETRY_NO_INTERACTION=1 \
+ \
+ # paths
+ # this is where our requirements + virtual environment will live
+ PYSETUP_PATH="/opt/pysetup" \
+ VENV_PATH="/opt/pysetup/.venv"
+
+# prepend poetry and venv to path
+ENV PATH="$POETRY_HOME/bin:$VENV_PATH/bin:$PATH"
+
+FROM base as base-builder
+WORKDIR $PYSETUP_PATH
+ADD ./poetry.lock ./pyproject.toml ./
RUN poetry install
+FROM base as pre-production
+EXPOSE 20000
+COPY --from=base-builder $VENV_PATH /app/.venv/
+COPY . /app/
VOLUME /app/accounts /app/data
+WORKDIR /app
CMD poetry run python3 main.py \ No newline at end of file