Skip to content

Commit

Permalink
[dockerfiles] Use docker buildkit caching in dockerfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
jstockwin committed May 13, 2021
1 parent 5d7927a commit 5129742
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 46 deletions.
26 changes: 14 additions & 12 deletions dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
# syntax = docker/dockerfile:1.2
FROM phusion/baseimage:focal-1.0.0

RUN adduser --disabled-password --gecos "" app_user
RUN echo "alias python=python3" > /home/app_user/.bashrc

RUN apt-get update && \
apt-get -y install software-properties-common \
python3-dev \
python3-pip
python3-dev \
python3-pip && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN pip3 install --upgrade pip
RUN --mount=type=cache,target=/root/.cache/pip pip3 install --upgrade pip

# Create src dir
ENV PROJECT_DIR /py-pdf-parser

WORKDIR $PROJECT_DIR
ADD ./ $PROJECT_DIR

# Add imagemagick policy
ADD ./imagemagick_policy.xml /etc/ImageMagick-6/policy.xml

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Install requirements
ADD ./setup.py $PROJECT_DIR/setup.py
ADD ./README.md $PROJECT_DIR/README.md
RUN --mount=type=cache,target=/root/.cache/pip pip3 install -e $PROJECT_DIR

# Copy code, chown and switch user
ADD ./ $PROJECT_DIR
RUN chown -R app_user: $PROJECT_DIR

RUN pip3 install $PROJECT_DIR

USER app_user

RUN echo "alias python=python3" > /home/app_user/.bashrc
32 changes: 17 additions & 15 deletions dockerfiles/Dockerfile_dev
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
# syntax = docker/dockerfile:1.2
FROM phusion/baseimage:focal-1.0.0

RUN adduser --disabled-password --gecos "" app_user
RUN echo "alias python=python3" > /home/app_user/.bashrc

RUN apt-get update && \
apt-get -y install software-properties-common \
python3-dev \
python3-pip \
libmagickwand-dev \
mesa-utils \
libxkbcommon-x11-dev
python3-dev \
python3-pip \
libmagickwand-dev \
mesa-utils \
libxkbcommon-x11-dev && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN pip3 install --upgrade pip
RUN --mount=type=cache,target=/root/.cache/pip pip3 install --upgrade pip

# Create src dir
ENV PROJECT_DIR /py-pdf-parser

WORKDIR $PROJECT_DIR
ADD ./ $PROJECT_DIR

# Add imagemagick policy
ADD ./imagemagick_policy.xml /etc/ImageMagick-6/policy.xml

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Install requirements
ADD ./setup.py $PROJECT_DIR/setup.py
ADD ./README.md $PROJECT_DIR/README.md
RUN --mount=type=cache,target=/root/.cache/pip pip3 install -e $PROJECT_DIR[dev]

# Copy code, chown and switch user
ADD ./ $PROJECT_DIR
RUN chown -R app_user: $PROJECT_DIR

RUN pip3 install -e $PROJECT_DIR[dev]

USER app_user

RUN echo "alias python=python3" > /home/app_user/.bashrc
38 changes: 19 additions & 19 deletions dockerfiles/Dockerfile_tests
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
# syntax = docker/dockerfile:1.2
FROM phusion/baseimage:focal-1.0.0

RUN adduser --disabled-password --gecos "" app_user
RUN echo "alias python=python3" > /home/app_user/.bashrc

RUN apt-get update && \
apt-get -y install software-properties-common \
python3-dev \
python3-pip \
libmagickwand-dev \
xvfb
python3-dev \
python3-pip \
libmagickwand-dev \
mesa-utils \
libxkbcommon-x11-dev \
xvfb && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN pip3 install --upgrade pip
RUN --mount=type=cache,target=/root/.cache/pip pip3 install --upgrade pip

# Create src dir
ENV PROJECT_DIR /py-pdf-parser

WORKDIR $PROJECT_DIR
COPY ./README.md $PROJECT_DIR/README.md
COPY ./setup.py $PROJECT_DIR/setup.py

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN chown -R app_user: $PROJECT_DIR
# Add imagemagick policy
ADD ./imagemagick_policy.xml /etc/ImageMagick-6/policy.xml

RUN pip3 install -e $PROJECT_DIR[dev]
RUN pip3 install -e $PROJECT_DIR[test]
# Install requirements
ADD ./setup.py $PROJECT_DIR/setup.py
ADD ./README.md $PROJECT_DIR/README.md
RUN --mount=type=cache,target=/root/.cache/pip pip3 install -e $PROJECT_DIR[dev]
RUN --mount=type=cache,target=/root/.cache/pip pip3 install -e $PROJECT_DIR[test]

COPY ./imagemagick_policy.xml /etc/ImageMagick-6/policy.xml
COPY ./ $PROJECT_DIR
# Copy code, chown and switch user
ADD ./ $PROJECT_DIR
RUN chown -R app_user: $PROJECT_DIR

USER app_user

RUN echo "alias python=python3" > /home/app_user/.bashrc

0 comments on commit 5129742

Please sign in to comment.