get docker working
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
# pull official base uv image
|
||||
FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# setup non-root
|
||||
RUN groupadd --system --gid 999 nonroot \
|
||||
&& useradd --system --gid 999 --uid 999 --create-home nonroot
|
||||
|
||||
# set workdir
|
||||
WORKDIR /app
|
||||
|
||||
#enable bytecode compilation
|
||||
ENV UV_COMPILE_BYTCODE=1
|
||||
|
||||
# Copy from cache instead of linking since it's a mounted volume
|
||||
ENV UV_LINK_MODE=copy
|
||||
|
||||
# omit developement dependencies
|
||||
ENV UV_NO_DEV=1
|
||||
|
||||
# ensure tools are on path
|
||||
ENV UV_TOOL_BIN_DIR=/usr/local/bin
|
||||
|
||||
# Install project's dependencies
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
--mount=type=bind,source=uv.lock,target=uv.lock \
|
||||
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
||||
uv sync --locked --no-install-project
|
||||
|
||||
|
||||
# add the project source code and install
|
||||
# installing seperatley optimizes layer caching
|
||||
COPY . /app
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --locked
|
||||
|
||||
RUN mkdir -p /app/markdown /app/publihs && \
|
||||
chown -R nonroot:nonroot /app
|
||||
|
||||
# Place executables at the front of path
|
||||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
|
||||
# reset the entrypoint, don't invoke uv
|
||||
ENTRYPOINT []
|
||||
|
||||
# use the non-root user to run app
|
||||
USER nonroot
|
||||
|
||||
# run the app
|
||||
CMD ["python", "src/main.py"]
|
||||
Reference in New Issue
Block a user