-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Problem: Currently the palmID
container image is 5.42GB which is highly bloated. The goal of this issue is to reduce down the image size to a target of sub 2GB to improve deployment and run-times of the microservice.
The sudo docker image history serratusbio/palmid:latest
IMAGE CREATED CREATED BY SIZE COMMENT
8d48d6a678c5 3 days ago CMD ["/home/palmid/palmid.sh"] 0B buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 6.8kB buildkit.dockerfile.v0
<missing> 3 days ago COPY data/* inst/extdata/* img/* data/ # bui… 1.21MB buildkit.dockerfile.v0
<missing> 3 days ago COPY palmid.Rmd scripts/* ./ # buildkit 836kB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 381MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 726kB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 186MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 36.2MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 1.38GB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 637MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 1.73MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 4.27MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 1.06MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 13.6MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 2.03GB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 129MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 35.3MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 231MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 51.5MB buildkit.dockerfile.v0
<missing> 3 days ago RUN |3 PROJECT=palmid TYPE=base VERSION=0.0.… 159MB buildkit.dockerfile.v0
<missing> 4 days ago LABEL tags=palmscan, diamond, muscle, R, pal… 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL software.license=GPLv3 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL container.description=palmid-base image 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL container.version=0.0.6 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL container.type=base 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL project.website=https://github.com/aba… 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL project.name=palmid 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL container.base.image=amazonlinux:2 0B buildkit.dockerfile.v0
<missing> 4 days ago LABEL author=ababaian 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV R=4 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV PALMDBVERSION=2021-03-14 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV PALMSCANVERSION=1.0 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV MUSCLEVERSION=3.8.31 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV DIAMONDVERSION=2.0.6-dev 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV SEQKITVERSION=2.0.0 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV PALMIDVERSION=0.0.6 0B buildkit.dockerfile.v0
<missing> 4 days ago ARG VERSION=0.0.6 0B buildkit.dockerfile.v0
<missing> 4 days ago ARG TYPE=base 0B buildkit.dockerfile.v0
<missing> 4 days ago ARG PROJECT=palmid 0B buildkit.dockerfile.v0
<missing> 4 days ago WORKDIR /home/palmid 0B buildkit.dockerfile.v0
<missing> 4 days ago ENV BASEDIR=/home/palmid 0B buildkit.dockerfile.v0
<missing> 4 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 4 weeks ago /bin/sh -c #(nop) COPY dir:54e5777658be1a3cc… 143MB
The largest stages are 2.03GB
and 1.38GB
which correspond to installation of R
on Line 182 and installation of postgres
on line 101 respectively. Not sure how much these installs can be reduced directly, but certainly a stripped down second stage will be helpful without much of the installation software (like g++
etc...)
The final build should have the same name serratusbio/palmid:latest
while the new build-stage should be called something like serratubio/palmid-builder:latest
to keep downstream deployment simple.