You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.4 KiB
69 lines
2.4 KiB
ARG PY_VERSION=3.9
|
|
|
|
|
|
|
|
# Build container
|
|
FROM python:${PY_VERSION} as base
|
|
FROM base as builder
|
|
ARG PY_VERSION
|
|
ARG TARGETPLATFORM
|
|
|
|
COPY . .
|
|
|
|
#Install rust
|
|
RUN apt-get update
|
|
RUN apt-get install -y \
|
|
build-essential \
|
|
curl
|
|
RUN apt-get update
|
|
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
|
|
RUN mkdir /install /src
|
|
WORKDIR /install
|
|
RUN pip install --target="/install" --upgrade pip setuptools wheel
|
|
RUN pip install --target="/install" --upgrade setuptools_rust
|
|
# if empty run as usual, if amd64 do the same, if arm64 load an arm version of torch
|
|
RUN if [ -z "{$TARGETPLATFORM}" ]; then pip install --target="/install" --upgrade torch==1.9.1+cpu torchvision==0.10.1+cpu -f https://download.pytorch.org/whl/torch_stable.html ; fi
|
|
RUN if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then pip install --target="/install" --upgrade torch==1.9.1+cpu torchvision==0.10.1+cpu -f https://download.pytorch.org/whl/torch_stable.html ; fi
|
|
RUN if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then pip install --target="/install" --upgrade torch==1.9.0 torchvision==0.10.0 -f https://torch.kmtea.eu/whl/stable.html -f https://ext.kmtea.eu/whl/stable.html ; fi
|
|
RUN pip install --target="/install" --upgrade git+https://github.com/openai/whisper.git
|
|
COPY requirements.txt /install
|
|
RUN pip install --target="/install" -r requirements.txt
|
|
COPY README.md /src
|
|
COPY cogs /src/cogs
|
|
COPY models /src/models
|
|
COPY services /src/services
|
|
COPY gpt3discord.py /src
|
|
COPY pyproject.toml /src
|
|
# For debugging + seeing that the modiles file layouts look correct ...
|
|
RUN find /src
|
|
RUN pip install --target="/install" /src
|
|
|
|
# Copy minimal to main image (to keep as small as possible)
|
|
FROM python:${PY_VERSION}-slim
|
|
|
|
ENV OPENAI_TOKEN=""
|
|
ENV DISCORD_TOKEN=""
|
|
ENV PINECONE_TOKEN=""
|
|
ENV DEBUG_GUILD=""
|
|
ENV DEBUG_CHANNEL=""
|
|
ENV ALLOWED_GUILDS=""
|
|
ENV ADMIN_ROLES=""
|
|
ENV DALLE_ROLES=""
|
|
ENV GPT_ROLES=""
|
|
ENV WELCOME_MESSAGE=""
|
|
ENV USER_INPUT_API_KEYS=""
|
|
ENV MODERATIONS_ALERT_CHANNEL=""
|
|
ENV USER_KEY_DB_PATH=""
|
|
|
|
ARG PY_VERSION
|
|
COPY . .
|
|
COPY --from=builder /install /usr/local/lib/python${PY_VERSION}/site-packages
|
|
RUN mkdir -p /opt/gpt3discord/etc
|
|
COPY gpt3discord.py /opt/gpt3discord/bin/
|
|
COPY image_optimizer_pretext.txt conversation_starter_pretext.txt conversation_starter_pretext_minimal.txt /opt/gpt3discord/share/
|
|
COPY openers /opt/gpt3discord/share/openers
|
|
CMD ["python3", "/opt/gpt3discord/bin/gpt3discord.py"]
|