鏡像體積優化
優化前構建鏡像體積: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
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