Files
books/Dockerfile

32 lines
1020 B
Docker

FROM python:latest
WORKDIR /code
# declare var
ARG ENV
ARG BOOK_UID
ARG BOOK_GID
RUN apt-get update && apt-get install -y sudo && apt-get -y upgrade
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
apt-get install -y ./google-chrome-stable_current_amd64.deb && \
apt-get install -f -y && \
rm -f ./google-chrome-stable_current_amd64.deb && \
apt-get clean
# just copy requirements for now, helps with build optimisation
COPY requirements.txt .
RUN pip3 install --upgrade pip && pip3 install -r requirements.txt
RUN groupadd -g ${BOOK_GID} pybook && useradd -m -u ${BOOK_UID} -g ${BOOK_GID} pybook
COPY . .
# in prod, /code will be owned by root and gunicorn logs wont work, so chg to pybook
RUN chown -R pybook:pybook /code
RUN cat /dev/urandom | head -c 50 | md5sum | head -c 32 > /code/.sk
RUN chmod 600 .sk
EXPOSE 80
# NOTE, wrapper.sh will use sudo to work in PROD and DEV AS the correct
# BOOK_UID/BOOK_GID as pybook user and group
CMD ["./wrapper.sh"]