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"]