aboutsummaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile38
1 files changed, 22 insertions, 16 deletions
diff --git a/Dockerfile b/Dockerfile
index 5bb400658..65ca8ce51 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,28 +1,34 @@
FROM --platform=linux/amd64 python:3.10-slim
-# Set pip to have no saved cache
-ENV PIP_NO_CACHE_DIR=false \
- POETRY_VIRTUALENVS_CREATE=false
+# Define Git SHA build argument for sentry
+ARG git_sha="development"
+
+# POETRY_VIRTUALENVS_IN_PROJECT is required to ensure in-projects venvs mounted from the host in dev
+# don't get prioritised by `poetry run`
+ENV POETRY_VERSION=1.2.0 \
+ POETRY_HOME="/opt/poetry/home" \
+ POETRY_CACHE_DIR="/opt/poetry/cache" \
+ POETRY_NO_INTERACTION=1 \
+ POETRY_VIRTUALENVS_IN_PROJECT=false \
+ APP_DIR="/bot" \
+ GIT_SHA=$git_sha
+ENV PATH="$POETRY_HOME/bin:$PATH"
-# Install poetry
-RUN pip install -U poetry
+RUN apt-get update \
+ && apt-get -y upgrade \
+ && apt-get install --no-install-recommends -y curl \
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
-# Create the working directory
-WORKDIR /bot
+RUN curl -sSL https://install.python-poetry.org | python
# Install project dependencies
+WORKDIR $APP_DIR
COPY pyproject.toml poetry.lock ./
-RUN poetry install --no-dev
-
-# Define Git SHA build argument
-ARG git_sha="development"
-
-# Set Git SHA environment variable for Sentry
-ENV GIT_SHA=$git_sha
+RUN poetry install --without dev
# Copy the source code in last to optimize rebuilding the image
COPY . .
-ENTRYPOINT ["python3"]
-CMD ["-m", "bot"]
+ENTRYPOINT ["poetry"]
+CMD ["run", "python", "-m", "bot"]