Wrote non-root Dockerfile
parent
12c1a2d206
commit
a60fa5d86f
|
@ -0,0 +1,7 @@
|
||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# The stuff necessary to build the image
|
||||||
|
!app/
|
||||||
|
!setup.cfg
|
||||||
|
!setup.py
|
|
@ -0,0 +1,34 @@
|
||||||
|
FROM python:3.9 AS builder
|
||||||
|
|
||||||
|
WORKDIR /wheels
|
||||||
|
|
||||||
|
# Update pip & build the wheels
|
||||||
|
COPY ./setup.cfg ./
|
||||||
|
RUN pip wheel -e .
|
||||||
|
|
||||||
|
|
||||||
|
FROM python:3.9-slim
|
||||||
|
|
||||||
|
# Switch to non-root user
|
||||||
|
RUN groupadd -r runner && \
|
||||||
|
useradd -mrg runner runner
|
||||||
|
|
||||||
|
# Install the generated wheels
|
||||||
|
COPY --from=builder /wheels /wheels
|
||||||
|
RUN pip install \
|
||||||
|
--no-cache-dir \
|
||||||
|
--no-warn-script-location \
|
||||||
|
-f /wheels \
|
||||||
|
-e /wheels && \
|
||||||
|
rm -rf /wheels
|
||||||
|
|
||||||
|
# Switch to non-root user
|
||||||
|
USER runner
|
||||||
|
|
||||||
|
# Copy source files
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
COPY --chown=runner:runner ./app ./app
|
||||||
|
COPY --chown=runner:runner setup.cfg setup.py ./
|
||||||
|
|
||||||
|
ENTRYPOINT ["python"]
|
||||||
|
CMD ["app"]
|
|
@ -6,4 +6,4 @@ app = Quart("jos")
|
||||||
async def hello():
|
async def hello():
|
||||||
return "hello"
|
return "hello"
|
||||||
|
|
||||||
app.run()
|
app.run(host="0.0.0.0")
|
||||||
|
|
Reference in New Issue