diff --git a/backend/Dockerfile b/backend/Dockerfile index 86a1c5d07165d9c89ea4505c32b70cd041c82ab6..4af4e02a94139a89f45dc1ac665f3e524ace9cfd 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,17 +1,74 @@ -FROM python:3.8-slim-buster - +FROM ubuntu:groovy # system packages installation -RUN apt update && apt install -y libvips ffmpeg libimage-exiftool-perl curl nfs-common cifs-utils libopenblas-dev libmagickwand-dev libheif-dev libmagic1 ufraw-batch libboost-all-dev libxrender-dev liblapack-dev git bzip2 cmake build-essential libsm6 libglib2.0-0 libgl1-mesa-glx libpq-dev --no-install-recommends +RUN apt update && apt install -y ffmpeg libimage-exiftool-perl curl nfs-common cifs-utils libopenblas-dev libheif-dev libmagic1 libraw-dev libboost-all-dev libxrender-dev liblapack-dev git bzip2 cmake build-essential libsm6 libglib2.0-dev libgl1-mesa-glx libpq-dev libexpat-dev \ + librsvg2-dev \ + libpng-dev \ + libgif-dev \ + libjpeg-dev \ + libexif-dev \ + liblcms2-dev \ + liborc-dev \ + pkg-config \ + libexpat1-dev \ + libtiff5-dev \ + libgsf-1-dev \ + libopenexr-dev \ + libcfitsio-dev \ + libimagequant-dev \ + libtool \ + libtool-bin \ + wget \ + libwebp-dev --no-install-recommends +#Build and install python +RUN apt-get update \ + && apt-get install -y python3-pip python3-dev \ + && cd /usr/local/bin \ + && ln -s /usr/bin/python3 python \ + && pip3 install --upgrade pip + +#Build and install libraw +#RUN mkdir /libraw +#RUN curl -SL https://www.libraw.org/data/LibRaw-0.20.2.tar.gz | tar -zxC /libraw +RUN git clone https://github.com/LibRaw/LibRaw +RUN ls +WORKDIR /LibRaw +RUN autoreconf --install +RUN ./configure +RUN make +RUN make install + +#Build and install imagemagick +WORKDIR / +RUN mkdir /imagemagick +RUN curl -SL https://www.imagemagick.org/download/ImageMagick.tar.gz | tar -zxC /imagemagick +WORKDIR /imagemagick/ImageMagick-7.1.0-2 +RUN ./configure --with-modules +RUN make install +RUN ldconfig /usr/local/lib + +# Build and install libvips +ARG VIPSVERSION=8.11.0 +ARG VIPSURL=https://github.com/libvips/libvips/releases/download +WORKDIR /usr/local/src +RUN wget ${VIPSURL}/v${VIPSVERSION}/vips-${VIPSVERSION}.tar.gz \ + && tar xzf vips-${VIPSVERSION}.tar.gz \ + && cd vips-${VIPSVERSION} \ + && ./configure \ + && make V=0 \ + && make install \ + && ldconfig # pre trained models download WORKDIR /data_models RUN mkdir -p /root/.cache/torch/hub/checkpoints/ -RUN curl -SL https://github.com/LibrePhotos/librephotos-docker/releases/download/0.1/places365.tar.gz | tar -zxC /data_models/ -RUN curl -SL https://github.com/LibrePhotos/librephotos-docker/releases/download/0.1/im2txt.tar.gz | tar -zxC /data_models/ -RUN curl -SL https://download.pytorch.org/models/resnet152-b121ed2d.pth -o /root/.cache/torch/hub/checkpoints/resnet152-b121ed2d.pth +RUN curl -SL -k https://github.com/LibrePhotos/librephotos-docker/releases/download/0.1/places365.tar.gz | tar -zxC /data_models/ +RUN curl -SL -k https://github.com/LibrePhotos/librephotos-docker/releases/download/0.1/im2txt.tar.gz | tar -zxC /data_models/ +RUN curl -SL -k https://download.pytorch.org/models/resnet152-b121ed2d.pth -o /root/.cache/torch/hub/checkpoints/resnet152-b121ed2d.pth RUN pip install torch==1.8.0+cpu torchvision==0.9.0+cpu -f https://download.pytorch.org/whl/torch_stable.html +RUN pip3 install pyvips + # Build and install dlib WORKDIR / RUN git clone https://github.com/davisking/dlib.git && \ @@ -25,7 +82,7 @@ RUN git clone https://github.com/davisking/dlib.git && \ # actual project ARG DEBUG WORKDIR /code -RUN git clone https://github.com/LibrePhotos/librephotos . +COPY . . RUN pip install -r requirements.txt RUN if [ "$DEBUG" = 1 ] ; then pip install -r requirements.dev.txt ; fi RUN python -m spacy download en_core_web_sm diff --git a/docker-compose.yml b/docker-compose.yml index 6b1a2e057fc41fb0260f85496ae08400df1c17c7..8721e75939d4f8a32e0ba920f9a4265112e03522 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ services: - backend backend: - image: reallibrephotos/librephotos:${tag} + image: reallibrephotos/librephotos-backend:${tag} restart: always volumes: - ${myPhotos}:/data