Skip to content

Commit 2ba6c6c

Browse files
Merge pull request #28 from simar0at/feature-minimize-container-image
feature: minimize container image
2 parents 2aa3dcd + ffde306 commit 2ba6c6c

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

Dockerfile

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,42 +24,42 @@ ENV NODE_ENV=production
2424

2525
USER root
2626

27+
ADD https://downloads.apache.org/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz \
28+
https://github.com/Saxonica/Saxon-HE/releases/download/${SAXON_VERSION}/${SAXON_VERSION}J.zip \
29+
https://www.oxygenxml.com/maven/com/oxygenxml/oxygen-patched-xerces/${XERCES_VERSION}/oxygen-patched-xerces-${XERCES_VERSION}.jar \
30+
/tmp/
31+
32+
COPY ["index.js", "package.json", "package-lock.json*", "/opt/docker-mei/"]
33+
2734
# Configure the Eclipse Adoptium apt repository
28-
RUN apt-get update && \
29-
apt-get install -y wget apt-transport-https && \
35+
RUN apt-get update && apt-get full-upgrade -y && \
36+
apt-get install -y --no-install-recommends wget apt-transport-https curl ca-certificates && \
3037
mkdir -p /etc/apt/keyrings && \
3138
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \
32-
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
33-
# install packages
34-
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils python3-pip temurin-${JAVA_VERSION}-jdk curl unzip git libc6 aptitude libaom-dev gdebi fonts-stix && \
35-
# install prince
36-
curl --proto '=https' --tlsv1.2 -O https://www.princexml.com/download/${DEB_FILE} && \
37-
gdebi --non-interactive ./${DEB_FILE} && \
39+
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list && \
3840
# install nodejs
3941
curl -fsSL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh && \
4042
bash nodesource_setup.sh && \
41-
apt install nodejs && \
43+
# install prince
44+
curl --proto '=https' --tlsv1.2 -LO https://www.princexml.com/download/${DEB_FILE} && \
45+
apt-get install -y --no-install-recommends apt-utils python3-pip temurin-${JAVA_VERSION}-jdk nodejs unzip git libc6 aptitude libaom-dev fonts-stix ./${DEB_FILE} && \
4246
# link ca-certificates
43-
ln -sf /etc/ssl/certs/ca-certificates.crt /usr/lib/prince/etc/curl-ca-bundle.crt
44-
45-
# setup ant
46-
ADD https://downloads.apache.org/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz /tmp/ant.tar.gz
47-
RUN tar -xvf /tmp/ant.tar.gz -C /opt
48-
49-
# setup saxon
50-
ADD https://github.com/Saxonica/Saxon-HE/releases/download/${SAXON_VERSION}/${SAXON_VERSION}J.zip /tmp/saxon.zip
51-
RUN unzip /tmp/saxon.zip -d ${ANT_HOME}/lib
52-
53-
# setup xerces
54-
ADD https://www.oxygenxml.com/maven/com/oxygenxml/oxygen-patched-xerces/${XERCES_VERSION}/oxygen-patched-xerces-${XERCES_VERSION}.jar ${ANT_HOME}/lib
55-
56-
# cleanup
57-
RUN apt-get purge -y aptitude apt-utils gdebi curl unzip wget apt-transport-https && \
47+
ln -sf /etc/ssl/certs/ca-certificates.crt /usr/lib/prince/etc/curl-ca-bundle.crt && \
48+
# setup ant
49+
tar -xvf /tmp/apache-ant-${ANT_VERSION}-bin.tar.gz -C /opt && \
50+
# setup saxon
51+
unzip /tmp/${SAXON_VERSION}J.zip -d ${ANT_HOME}/lib && \
52+
# setup xerces
53+
cp /tmp/oxygen-patched-xerces-${XERCES_VERSION}.jar ${ANT_HOME}/lib && \
54+
# cleanup
55+
apt-get purge -y aptitude apt-utils && \
5856
apt-get autoremove -y && apt-get clean && \
57+
apt-get clean && \
5958
rm ${DEB_FILE} nodesource_setup.sh && \
60-
rm -rf /tmp/*
59+
cd /opt/docker-mei && \
60+
# setup node app for rendering MEI files to SVG using Verovio Toolkit
61+
npm install --omit=dev && \
62+
# clean temporary folders
63+
rm -rfv /tmp/* /root/.npm*
6164

62-
# setup node app for rendering MEI files to SVG using Verovio Toolkit
6365
WORKDIR /opt/docker-mei
64-
COPY ["index.js", "package.json", "package-lock.json*", "./"]
65-
RUN npm install --production

0 commit comments

Comments
 (0)