docker鏡像體積優化,拉取最小化jre鏡像並構建nodejs環境

鏡像體積優化

優化前構建鏡像體積:1.2GB

優化後構建鏡像體積:621.63 MB

 優化思路,1.centos鏡像體積太大,有幾百MB,使用alpine版本體積更小。2.只需要jre即可,無需jdk。

優化前

Dockerfile

FROM centos:centos7
WORKDIR /mydocker/jdk
#創建一個存放jdk的路徑
RUN mkdir /mydocker/jdk/jdk11
#將jdk壓縮包複製並解壓到容器中/mydocker/jdk/jdk11
ADD jdk-11.0.18_linux-x64_bin.tar.gz /mydocker/jdk/jdk11
#配置java環境變量
ENV JAVA_HOME /mydocker/jdk/jdk11/jdk-11.0.18
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install nodejs npm; yum clean all

ADD . /mydocker/jdk
RUN cd /mydocker/jdk; npm install
EXPOSE 3000

yaml文件

version: "3"
services:
  app:
    platform: linux/amd64
    image: font_file_pick
    container_name: font_file_pick
    ports:
      - "3000:3000"
    build:
      context: ./                  # 指定dockerfile文件的所在路徑  
      dockerfile: Dockerfile    # 指定Dockerfile文件名稱 
    volumes:
      - ./:/home/node/app
    command: npm run start

 

優化後

Dockerfile

FROM eclipse-temurin:17-jre-alpine
WORKDIR /work
RUN apk add nodejs npm 
COPY . /work
RUN cd /work && npm install 
EXPOSE 3000
yaml文件
version: "3"
services:
  app:
    platform: linux/amd64
    image: font_file_pick
    container_name: font_file_pick
    ports:
      - "3000:3000"
    build:
      context: ./               # 指定dockerfile文件的所在路徑  
      dockerfile: Dockerfile    # 指定Dockerfile文件名稱 
    command: npm run start

 

安裝nodejs方式: https://nodejs.org/en/download/package-manager#alpine-linux

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章