-
-
Notifications
You must be signed in to change notification settings - Fork 285
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
FROM python:3.12-bullseye | ||
|
||
LABEL maintainer="Sebastian Ramirez <[email protected]>" | ||
|
||
ENV PYTHONDONTWRITEBYTECODE=1 | ||
ENV PYTHONUNBUFFERED=1 | ||
|
||
COPY install-nginx-debian.sh / | ||
|
||
RUN bash /install-nginx-debian.sh | ||
|
||
# Install requirements | ||
COPY requirements.txt /tmp/requirements.txt | ||
RUN pip install --no-cache-dir -r /tmp/requirements.txt | ||
|
||
# Remove default configuration from Nginx | ||
RUN rm /etc/nginx/conf.d/default.conf | ||
# Copy the base uWSGI ini file to enable default dynamic uwsgi process number | ||
COPY uwsgi.ini /etc/uwsgi/ | ||
|
||
# Install Supervisord | ||
RUN apt-get update && apt-get install -y supervisor \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
# Custom Supervisord config | ||
COPY supervisord-debian.conf /etc/supervisor/conf.d/supervisord.conf | ||
|
||
# Copy stop-supervisor.sh to kill the supervisor and substasks on app failure | ||
COPY stop-supervisor.sh /etc/supervisor/stop-supervisor.sh | ||
RUN chmod +x /etc/supervisor/stop-supervisor.sh | ||
|
||
# Which uWSGI .ini file should be used, to make it customizable | ||
ENV UWSGI_INI /app/uwsgi.ini | ||
Check warning on line 32 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 32 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# By default, run 2 processes | ||
ENV UWSGI_CHEAPER 2 | ||
Check warning on line 35 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 35 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# By default, when on demand, run up to 16 processes | ||
ENV UWSGI_PROCESSES 16 | ||
Check warning on line 38 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 38 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# By default, allow unlimited file sizes, modify it to limit the file sizes | ||
# To have a maximum of 1 MB (Nginx's default) change the line to: | ||
# ENV NGINX_MAX_UPLOAD 1m | ||
ENV NGINX_MAX_UPLOAD 0 | ||
Check warning on line 43 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 43 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# By default, Nginx will run a single worker process, setting it to auto | ||
# will create a worker for each CPU core | ||
ENV NGINX_WORKER_PROCESSES 1 | ||
Check warning on line 47 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 47 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# By default, Nginx listens on port 80. | ||
# To modify this, change LISTEN_PORT environment variable. | ||
# (in a Dockerfile or with an option for `docker run`) | ||
ENV LISTEN_PORT 80 | ||
Check warning on line 52 in docker-images/python3.12.dockerfile GitHub Actions / deploy (latest, 3.12)Legacy key/value format with whitespace separator should not be used
Check warning on line 52 in docker-images/python3.12.dockerfile GitHub Actions / deploy (python3.12, 3.12)Legacy key/value format with whitespace separator should not be used
|
||
|
||
# Copy start.sh script that will check for a /app/prestart.sh script and run it before starting the app | ||
COPY start.sh /start.sh | ||
RUN chmod +x /start.sh | ||
|
||
# Copy the entrypoint that will generate Nginx additional configs | ||
COPY entrypoint.sh /entrypoint.sh | ||
RUN chmod +x /entrypoint.sh | ||
|
||
ENTRYPOINT ["/entrypoint.sh"] | ||
|
||
# Add demo app | ||
COPY ./app /app | ||
WORKDIR /app | ||
|
||
# Run the start script, it will check for an /app/prestart.sh script (e.g. for migrations) | ||
# And then will start Supervisor, which in turn will start Nginx and uWSGI | ||
CMD ["/start.sh"] |