slim images v2.0
This commit is contained in:
parent
fa576b42c9
commit
8d361f7259
77
Dockerfile
77
Dockerfile
@ -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
33
package.json
Normal 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"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user