mirror of
https://github.com/enpaul/kodak.git
synced 2025-11-09 20:22:31 +00:00
Add dockerfile and build integration to makefile
This commit is contained in:
77
Dockerfile
Normal file
77
Dockerfile
Normal file
@@ -0,0 +1,77 @@
|
||||
FROM python:3.9 as build
|
||||
|
||||
RUN python -m pip install pip==19.3.1
|
||||
|
||||
ADD https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py /get-poetry.py
|
||||
ENV POETRY_HOME /pypoetry
|
||||
RUN python /get-poetry.py \
|
||||
--yes \
|
||||
--force
|
||||
|
||||
ADD . /source
|
||||
WORKDIR /source
|
||||
|
||||
RUN $POETRY_HOME/bin/poetry export \
|
||||
--format requirements.txt \
|
||||
--output /requirements.txt \
|
||||
--without-hashes \
|
||||
--extras deployment
|
||||
RUN python -m pip wheel \
|
||||
--wheel-dir /wheels \
|
||||
--requirement /requirements.txt \
|
||||
--disable-pip-version-check \
|
||||
--no-cache-dir
|
||||
RUN mv /source/openapi.yaml /source/kodak/openapi.yaml
|
||||
RUN $POETRY_HOME/bin/poetry build \
|
||||
--format wheel
|
||||
RUN mv /source/dist/*.whl /wheels
|
||||
|
||||
|
||||
FROM python:3.9-slim as runtime
|
||||
|
||||
RUN apt update --yes && \
|
||||
apt install --yes \
|
||||
libjpeg-dev \
|
||||
zlib1g \
|
||||
liblcms2-2 && \
|
||||
apt clean all --yes && \
|
||||
python -m pip install pip==19.3.1 && \
|
||||
useradd kodak \
|
||||
--no-create-home \
|
||||
--no-log-init \
|
||||
--system \
|
||||
--user-group && \
|
||||
mkdir --parents /kodak/pictures && \
|
||||
mkdir --parents /kodak/content && \
|
||||
chown --recursive kodak:kodak /kodak && \
|
||||
chmod 0775 /kodak /kodak/content
|
||||
|
||||
COPY --from=build /wheels /wheels
|
||||
RUN python -m pip install kodak[deployment] \
|
||||
--upgrade \
|
||||
--pre \
|
||||
--no-index \
|
||||
--no-cache-dir \
|
||||
--find-links /wheels \
|
||||
--disable-pip-version-check && \
|
||||
rm --recursive --force /wheels
|
||||
|
||||
ENV KODAK_SOURCE_DIR /pictures
|
||||
ENV KODAK_CONTENT_DIR /kodak/content
|
||||
ENV KODAK_DATABASE_SQLITE_PATH /kodak/kodak.db
|
||||
|
||||
VOLUME /kodak
|
||||
VOLUME /pictures
|
||||
|
||||
USER kodak
|
||||
|
||||
CMD [ \
|
||||
"python", \
|
||||
"-m", \
|
||||
"gunicorn", \
|
||||
"kodak.application:APPLICATION", \
|
||||
"--bind=0.0.0.0:8080", \
|
||||
"--workers=8", \
|
||||
"--log-level=info", \
|
||||
"--access-logfile=-" \
|
||||
]
|
||||
Reference in New Issue
Block a user