# yup, python 3.11! FROM python:3.11-slim USER 0 # install nginx RUN apt-get update && apt-get install nginx -y # copy our nginx configuration to overwrite nginx defaults RUN rm /etc/nginx/sites-enabled/default RUN rm /etc/nginx/sites-available/default COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf # link nginx logs to container stdout RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log # copy the django code COPY ./src ./app RUN addgroup nginx RUN adduser nginx -g nginx RUN chgrp -R 0 ./app && chmod -R g=u ./app RUN chown -R nginx:0 /var/cache/nginx && \ chown -R nginx:0 /var/log/nginx && \ chown -R nginx:0 /etc/nginx/conf.d RUN touch /var/run/nginx.pid && \ chown -R nginx:0 /var/run/nginx.pid USER nginx # change our working directory to the django projcet roo WORKDIR /app # create virtual env (notice the location?) # update pip # install requirements RUN python -m venv /opt/venv && \ /opt/venv/bin/python -m pip install pip --upgrade && \ /opt/venv/bin/python -m pip install -r requirements.txt # make our entrypoint.sh executable RUN chmod +x config/entrypoint.sh # execute our entrypoint.sh file CMD ["./config/entrypoint.sh"]