【发布时间】:2021-08-03 02:34:39
【问题描述】:
我们有一个大小约为 858 MB 的 docker 映像。我们想减小它的大小。
共 858 MB
APP Size: 352 MB (EAR FILE)
WILDFLY (18.0.1): 212 MB
adoptopenjdk:11: 123 MB
USR DIR : 116 MB
有什么办法可以缩小尺寸?
第一个 Dockerfile --wildfly-11.8:latest
FROM adoptopenjdk/openjdk11:jre-11.0.6_10-alpine
ENV WILDFLY_VERSION 18.0.1.Final
ENV WILDFLY_SHA1 ef0372589a0f08c53e7291721a7e3f7d9
ENV MODULES_FILENAME modules.tar
ENV MODULES_SHA1 2dcfee4045b7d026d7d6290cebc772482
ENV JBOSS_HOME /opt/wildfly
RUN useradd -ms /bin/bash jboss
RUN cd $HOME \
&& curl -O -k https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz \
&& sha1sum wildfly-$WILDFLY_VERSION.tar.gz | grep $WILDFLY_SHA1 \
&& tar xf wildfly-$WILDFLY_VERSION.tar.gz \
&& mv $HOME/wildfly-$WILDFLY_VERSION $JBOSS_HOME \
&& rm wildfly-$WILDFLY_VERSION.tar.gz \
&& chown -R jboss:0 ${JBOSS_HOME} \
&& chmod -R g+rw ${JBOSS_HOME} \
&& curl -p ftp://ftp.co.il//wildfly/1801/$MODULES_FILENAME --user "app:qax" --ftp-create-dirs -O \
&& sha1sum $MODULES_FILENAME | grep $MODULES_SHA1 \
&& tar xf ${MODULES_FILENAME} \
&& rm ${MODULES_FILENAME} \
&& cp -r ./* ${JBOSS_HOME} \
&& rm -rf ./*
COPY configuration /opt/wildfly/standalone/configuration
COPY standalone.conf /opt/wildfly/bin
USER jboss
EXPOSE 8080
CMD cd /opt/wildfly/bin && ./standalone.sh -b="0.0.0.0" -c=$STANDALONE_CONFIG
第二个 Dockerfile
FROM wildfly-11.8:latest
ENV DEPLOYMENT_LOCATION /opt/wildfly/standalone/deployments
ARG ear_file_path
COPY $ear_file_path $DEPLOYMENT_LOCATION
【问题讨论】:
-
您的环境大部分是您的代码。将大型企业应用程序 Docker 化并不总是正确的答案。您可以将 Quarkus 之类的东西用于微服务类型的东西,但这听起来像是一个大型的单体应用程序。为什么要使用 Docker?
-
是的,应用程序的大小是问题之一。这是客户的要求。
标签: docker dockerfile wildfly docker-image openjdk-11