trying to use less RUNs / layers, to speed up subsequent builds

This commit is contained in:
2025-05-13 18:41:59 +10:00
parent 5448e0a7a4
commit 62acd34ae0

View File

@@ -4,31 +4,24 @@ FROM python:latest
ARG PA_ID ARG PA_ID
WORKDIR /code WORKDIR /code
RUN groupadd -g ${PA_ID} pauser && useradd -r -u ${PA_ID} -g ${PA_ID} pauser # do this first, allowing layer / build efficiencies if only code changes...
# sudo used in dev container # sudo used in dev container
RUN apt-get update && apt-get -y install libpq-dev mediainfo cmake libgl1-mesa-glx libglib2.0-0 libjpeg-turbo-progs ffmpeg git sudo RUN apt-get update && apt-get -y install libpq-dev mediainfo cmake libgl1-mesa-glx libglib2.0-0 libjpeg-turbo-progs ffmpeg git sudo
COPY requirements.txt .
RUN pip3 install --upgrade pip && pip3 install -r requirements.txt && pip3 install --upgrade pillow
RUN groupadd -g ${PA_ID} pauser && useradd -r -u ${PA_ID} -g ${PA_ID} pauser
# NOW, deal with any code changes, and reset the container for 'first run'...
COPY . . COPY . .
# be explicity with this special directory, don't presume the COPY . . above
# has set things up perfectly from DEV to PROD # set up static dir and subdirs
RUN rm -rf static RUN mkdir -p static/Bin && mkdir static/Import && mkdir static/Storage && mkdir static/Metadata
RUN mkdir -p static/Bin
RUN mkdir -p static/Import
RUN mkdir -p static/Storage
RUN mkdir -p static/Metadata
RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt
RUN pip3 install --upgrade pillow --user
EXPOSE 80 EXPOSE 80
RUN cat /dev/urandom | head -c 50 | md5sum | head -c 32 > /code/.sk RUN cat /dev/urandom | head -c 50 | md5sum | head -c 32 > /code/.sk && chmod 600 .sk && chown pauser:pauser .sk
RUN chmod 600 .sk RUN date > internal/build-date.txt && git log -n 15 > internal/git-log.txt && ln -s /code/TODO /code/internal/TODO && ln -s /code/BUGs /code/internal/BUGs
RUN date > internal/build-date.txt
RUN git log -n 15 > internal/git-log.txt
RUN ln -s /code/TODO /code/internal/TODO
RUN ln -s /code/BUGs /code/internal/BUGs
RUN rm -rf .git RUN rm -rf .git
RUN chown pauser:pauser /code RUN chown pauser:pauser /code && chown pauser:pauser ./static && chown pauser:pauser ./static/*
RUN chown pauser:pauser ./static
RUN chown pauser:pauser ./static/*
CMD ["./wrapper.sh"] CMD ["./wrapper.sh"]