32 lines
1020 B
Docker
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"]
|