37 lines
986 B
Docker
37 lines
986 B
Docker
# Python 3.11
|
|
FROM python@sha256:ad26bf20080f6b43a7f10020201fb95a678445be9040c111e034d86dc0c80d71 as build
|
|
|
|
# Install OS dependencies
|
|
RUN apt-get update && apt-get install -y build-essential curl
|
|
|
|
# Set venv
|
|
ENV VIRTUAL_ENV=/opt/venv \
|
|
PATH="/opt/venv/bin:$PATH"
|
|
|
|
# Install uv
|
|
ADD https://astral.sh/uv/install.sh /install.sh
|
|
RUN chmod -R 655 /install.sh && /install.sh && rm /install.sh
|
|
|
|
# Create a virtual environment and install dependencies
|
|
COPY ./requirements.txt .
|
|
RUN /root/.cargo/bin/uv venv /opt/venv && \
|
|
/root/.cargo/bin/uv pip install --no-cache -r requirements.txt
|
|
|
|
# Python 3.11-slim-bookworm app image
|
|
FROM python@sha256:ad26bf20080f6b43a7f10020201fb95a678445be9040c111e034d86dc0c80d71
|
|
|
|
# Copy the virtual environment from the previous image
|
|
COPY --from=build /opt/venv /opt/venv
|
|
|
|
# Activate the virtual environment
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
|
|
# Set the working directory
|
|
WORKDIR /app
|
|
|
|
# Copy the code
|
|
COPY . .
|
|
|
|
# Run the application
|
|
CMD ["python", "main.py"]
|