slim images v2.0

This commit is contained in:
fly6516 2024-12-19 11:41:18 +08:00
parent fa576b42c9
commit 8d361f7259
2 changed files with 81 additions and 29 deletions

View File

@ -1,41 +1,60 @@
# 使用 Ubuntu 作为基础镜像
FROM dockerp.com/ubuntu:20.04
# 第一阶段:构建阶段
FROM dockerp.com/node:20-alpine AS builder
# 设置环境变量
# 设置环境变量,避免交互式安装
ENV DEBIAN_FRONTEND=noninteractive
# 使用南京大学的 apt 源并安装常用工具和编译器
RUN sed -i 's/archive.ubuntu.com/mirrors.nju.edu.cn/g' /etc/apt/sources.list && \
apt-get update && apt-get install -y \
# 使用南京大学的 apk 源并安装构建工具
RUN sed -i 's|dl-cdn.alpinelinux.org|mirrors.nju.edu.cn|g' /etc/apk/repositories && \
apk update && \
apk add --no-cache \
curl \
wget \
git \
build-essential \
software-properties-common \
apt-transport-https \
gcc g++ make \
openjdk-11-jdk \
python3 python3-pip \
golang \
rustc cargo \
ruby-full \
php composer \
ghc cabal-install \
build-base \
openjdk11 \
python3 \
py3-pip \
go \
rust \
ruby \
php \
ghc \
perl \
lua5.3 \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
&& rm -rf /var/cache/apk/*
# 安装 Node.js 和 NPM南京大学源
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get update && apt-get install -y nodejs && \
npm config set registry https://repo.nju.edu.cn/repository/npm/ && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*
# 设置 npm 镜像源
RUN npm config set registry https://repo.nju.edu.cn/repository/npm/
# 安装 .NET SDK
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb && \
apt-get update && apt-get install -y dotnet-sdk-6.0 && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/* packages-microsoft-prod.deb
# 安装 Node.js 依赖
WORKDIR /workspace
COPY . .
RUN npm install
# 第二阶段:运行阶段(极限小)
FROM dockerp.com/node:20-alpine
# 设置 npm 镜像源
RUN npm config set registry https://repo.nju.edu.cn/repository/npm/
# 使用南京大学的 apk 源并安装运行时依赖
RUN sed -i 's|dl-cdn.alpinelinux.org|mirrors.nju.edu.cn|g' /etc/apk/repositories && \
apk update && \
apk add --no-cache \
curl \
openjdk11 \
python3 \
go \
rust \
ruby \
php \
ghc \
perl \
lua5.3 \
&& rm -rf /var/cache/apk/*
# 从构建阶段复制必要文件
COPY --from=builder /workspace /workspace
# 设置工作目录
WORKDIR /workspace

33
package.json Normal file
View File

@ -0,0 +1,33 @@
{
"name": "multi-language-development-env",
"version": "1.0.0",
"description": "A Docker image for multi-language development environment with Node.js and other tools",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"No tests specified\" && exit 0",
"build": "echo \"Building project...\""
},
"keywords": [
"docker",
"nodejs",
"multi-language",
"development"
],
"author": "Your Name",
"license": "MIT",
"dependencies": {
"express": "^4.17.1",
"axios": "^0.21.1"
},
"devDependencies": {
"nodemon": "^2.0.7",
"webpack": "^5.24.0",
"webpack-cli": "^4.5.0",
"babel-loader": "^8.2.2"
},
"engines": {
"node": ">=14.0.0"
}
}