Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
data
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ static/thumbs/
as.db
secret_key.txt
env/
data
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM python:2

RUN apt-get update -y && apt-get install -y poppler-utils imagemagick libopenblas-dev ghostscript sqlite3 sudo

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
COPY . /usr/src/app

RUN mkdir -p /usr/src/app/data
RUN ln -s data/txt data/pdf data/db.p data/tfidf_meta.p data/sim_dict.p data/user_sim.p data/tfidf.p data/search_dict.p data/as.db data/tmp data/secret_key.txt . && ln -s ../data/thumbs static/

EXPOSE 8080

ENTRYPOINT ["./docker.sh"]
CMD ["python", "serve.py", "--prod", "--port", "8080"]
22 changes: 22 additions & 0 deletions docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

#create user based on owner and group of data directory
SUID=$(stat -c %u data)
SGID=$(stat -c %g data)
if [ ! "$SUID" == "0" ]; then
groupadd -g $SGID sanity
useradd -u $SUID -g $SGID sanity
SUSER=sanity
else
SUSER=root
fi

echo Changing to $SUSER
exec sudo -u $SUSER /bin/bash - << EOF
mkdir -p /usr/src/app/data/{pdf,txt,thumbs,tmp}

[ -f data/secret_key.txt ] || head -c 1024 < /dev/urandom > data/secret_key.txt
[ -f data/as.db ] || sqlite3 as.db < schema.sql

exec $@
EOF