A starlette image to deploy python code
3.5K
FROM debian:bookworm-slim
ARG USERNAME=keno ARG USER_UID=102 ARG USER_GID=$USER_UID
RUN groupadd --system --gid $USER_GID $USERNAME
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
#
# [Optional] Add sudo support. Omit if you don't need to install software after connecting.
&& apt-get update
&& apt-get install -y sudo
&& echo $USERNAME ALL=(root) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME
&& chmod 0440 /etc/sudoers.d/$USERNAME
&& savedAptMark="$savedAptMark sudo"
RUN set -eux;
apt-get update && apt-get install -y --no-install-recommends
python3.12
libpython3.12-minimal
libpython3.12-stdlib
python3.12-minimal
libpython3.12-dev
git
python3.12-venv
libsodium-dev
libkrb5-dev
libsnappy-dev
build-essential
netcat-openbsd
USER $USERNAME
RUN set -eux;
/usr/bin/python3.12 -m venv /home/$USERNAME/.python;
. /home/$USERNAME/.python/bin/activate;
python -m pip install --upgrade pip setuptools wheel;
WORKDIR /app/
RUN set -ex;
echo "change_me to upgrade starlette doy";
git clone https://github.com/nixroxursox/starlette.git;
cd starlette;
git clone https://github.com/nixroxursox/starlette-context.git;
git pull origin master;
COPY requirements.txt /app/starlette/ COPY .bashrc /home/$USERNAME/ COPY starsessions.tar.gz /app/starlette/
USER $USERNAME
RUN set -ex;
cd /app/starlette
&& . /home/$USERNAME/.python/bin/activate;
python -m pip install -r requirements.txt;
RUN set -ex;
cd /app/starlette
&& . /home/$USERNAME/.python/bin/activate;
python -m pip install "pymongo[gssapi,aws,ocsp,snappy,zstd,encryption]";
tar -xzvf starsessions.tar.gz;
sudo rm -rf /app/starlette/starsessions.tar.gz
RUN set -eux;
sudo apt-get update
WORKDIR /app/website
CMD [ "/home/keno/.python/bin/gunicorn", "--bind", "unix:/tmp/keno.sock", "--config", "/app/website/libs/gunicorn.conf.py", "--access-logfile", "/proc/self/fd/1", "--error-logfile", "/proc/self/fd/2", "--log-level", "trace", "--worker-class", "uvicorn_worker.UvicornWorker ", "--backlog", "1024", "--threads", "24", "app:app" ]
Content type
Image
Digest
sha256:fcc4c5de2…
Size
517.8 MB
Last updated
almost 2 years ago
docker pull itsnix/kenowatch