diff --git a/core_Dockerfile b/core_Dockerfile index 8c34341..8031d8b 100644 --- a/core_Dockerfile +++ b/core_Dockerfile @@ -7,7 +7,7 @@ # Want to help us make this template better? Share your feedback here: https://forms.gle/ybq9Krt8jtBL3iCk7 ARG PYTHON_VERSION=3.11.5 -FROM python:${PYTHON_VERSION}-slim as base +FROM ubuntu:latest AS base # Prevents Python from writing pyc files. ENV PYTHONDONTWRITEBYTECODE=1 @@ -21,33 +21,20 @@ ENV TZ="America/Detroit" WORKDIR /app -# Create a non-privileged user that the app will run under. -# See https://docs.docker.com/go/dockerfile-user-best-practices/ -ARG UID=10001 -RUN adduser \ - --disabled-password \ - --gecos "" \ - --home "/nonexistent" \ - --shell "/sbin/nologin" \ - --no-create-home \ - --uid "${UID}" \ - appuser +# update package list +RUN apt-get update -# Download dependencies as a separate step to take advantage of Docker's caching. -# Leverage a cache mount to /root/.cache/pip to speed up subsequent builds. -# Leverage a bind mount to requirements.txt to avoid having to copy them into -# into this layer. -RUN --mount=type=cache,target=/root/.cache/pip \ - --mount=type=bind,source=requirements.txt,target=requirements.txt \ - python -m pip install -r requirements.txt - -# Switch to the non-privileged user to run the application. -USER appuser +# install python, pipx +RUN apt-get install -y wget python3 pipx # Copy the source code into the container. COPY . . +# install poetry via pipx +RUN pipx install poetry && pipx ensurepath +RUN ~/.local/bin/poetry install + # Expose the port that the application listens on. EXPOSE 8000 -CMD ["python3", "src/py/bot_core.py", "xiv-database.ini", "xiv-discord.token", "865781604881530940", "888844785274724362"] +CMD ["poetry", "run", "python3", "src/py/bot_core.py", "xiv-database.ini", "xiv-discord.token", "865781604881530940", "888844785274724362"]