Merge pull request #1369 from seavphing/improve-dockerfile

improve Dockerfile to use entrypoint in order to get better log when …
This commit is contained in:
Sefik Ilkin Serengil 2024-10-17 09:23:51 +01:00 committed by GitHub
commit 81fd5a4bb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 5 deletions

View File

@ -7,14 +7,21 @@ LABEL org.opencontainers.image.source https://github.com/serengil/deepface
RUN mkdir /app RUN mkdir /app
RUN mkdir /app/deepface RUN mkdir /app/deepface
# ----------------------------------- # -----------------------------------
# switch to application directory # switch to application directory
WORKDIR /app WORKDIR /app
# ----------------------------------- # -----------------------------------
# update image os # update image os
RUN apt-get update # Install system dependencies
RUN apt-get install ffmpeg libsm6 libxext6 -y RUN apt-get update && apt-get install -y \
ffmpeg \
libsm6 \
libxext6 \
libhdf5-dev \
&& rm -rf /var/lib/apt/lists/*
# ----------------------------------- # -----------------------------------
# Copy required files from repo into image # Copy required files from repo into image
@ -25,6 +32,7 @@ COPY ./requirements_local /app/requirements_local.txt
COPY ./package_info.json /app/ COPY ./package_info.json /app/
COPY ./setup.py /app/ COPY ./setup.py /app/
COPY ./README.md /app/ COPY ./README.md /app/
COPY ./entrypoint.sh /app/deepface/api/src/entrypoint.sh
# ----------------------------------- # -----------------------------------
# if you plan to use a GPU, you should install the 'tensorflow-gpu' package # if you plan to use a GPU, you should install the 'tensorflow-gpu' package
@ -55,4 +63,5 @@ ENV PYTHONUNBUFFERED=1
# run the app (re-configure port if necessary) # run the app (re-configure port if necessary)
WORKDIR /app/deepface/api/src WORKDIR /app/deepface/api/src
EXPOSE 5000 EXPOSE 5000
CMD ["gunicorn", "--workers=1", "--timeout=3600", "--bind=0.0.0.0:5000", "app:create_app()"] # CMD ["gunicorn", "--workers=1", "--timeout=3600", "--bind=0.0.0.0:5000", "app:create_app()"]
ENTRYPOINT [ "sh", "entrypoint.sh" ]

5
entrypoint.sh Normal file
View File

@ -0,0 +1,5 @@
# Example content
echo "Starting the application..."
exec "$@"
gunicorn -w 1 -b 0.0.0.0:5000 --timeout 7200 --log-level 'debug' --access-logfile - --access-logformat '%(h)s - - [%(t)s] "%(r)s" %(s)s %(b)s %(L)s' app:create_app

View File

@ -2,5 +2,5 @@ numpy==1.22.3
pandas==2.0.3 pandas==2.0.3
Pillow==9.0.0 Pillow==9.0.0
opencv-python==4.9.0.80 opencv-python==4.9.0.80
tensorflow==2.9.0 tensorflow==2.13.1
keras==2.9.0 keras==2.13.1