-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
61336bc
commit 65a6931
Showing
1 changed file
with
28 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,38 @@ | ||
FROM python:3.10 as py | ||
FROM python:3.11-alpine as base | ||
|
||
FROM py as build | ||
RUN apk add --no-cache \ | ||
# cairosvg dependencies | ||
cairo-dev cairo cairo-tools \ | ||
# pillow dependencies | ||
jpeg-dev zlib-dev \ | ||
&& adduser -D -h /home/modmail -g 'Modmail' modmail | ||
|
||
RUN apt update && apt install -y g++ git | ||
ENV VIRTUAL_ENV=/home/modmail/.venv | ||
ENV PATH="$VIRTUAL_ENV/bin:$PATH" | ||
|
||
COPY requirements.txt / | ||
RUN pip install --prefix=/inst -U -r /requirements.txt | ||
WORKDIR /home/modmail | ||
|
||
FROM py | ||
FROM base as builder | ||
|
||
COPY --from=build /inst /usr/local | ||
RUN apk add build-base libffi-dev | ||
|
||
RUN python -m venv $VIRTUAL_ENV | ||
|
||
COPY --chown=modmail:modmail requirements.txt . | ||
RUN pip install --upgrade pip setuptools && \ | ||
pip install -r requirements.txt | ||
|
||
FROM base as runtime | ||
|
||
# copy the entire venv | ||
COPY --from=builder --chown=modmail:modmail $VIRTUAL_ENV $VIRTUAL_ENV | ||
|
||
# copy repository files | ||
COPY --chown=modmail:modmail . . | ||
|
||
# this disables the internal auto-update | ||
ENV USING_DOCKER yes | ||
RUN useradd --system --no-create-home modmail | ||
|
||
USER modmail | ||
|
||
WORKDIR /modmailbot | ||
CMD ["python", "bot.py"] | ||
COPY --chown=modmail:modmail . /modmailbot |