Compare commits

...

3 Commits
main ... slim

Author SHA1 Message Date
ccee5e7257 bugs with checkout no git detected 2024-12-20 14:20:31 +08:00
8d361f7259 slim images v2.0 2024-12-19 11:41:18 +08:00
fa576b42c9 slim commands 2024-12-19 10:31:12 +08:00
2 changed files with 100 additions and 45 deletions

View File

@ -1,56 +1,78 @@
# LABEL authors="fly"
# 第一阶段:构建阶段
FROM dockerp.com/node:20-alpine AS builder
# ENTRYPOINT ["top", "-b"]
# 使用 Ubuntu 作为基础镜像
FROM dockerp.com/ubuntu:20.04
# 设置环境变量
# 设置环境变量,避免交互式安装
ENV DEBIAN_FRONTEND=noninteractive
# 使用南京大学的 apt 源
RUN sed -i 's/archive.ubuntu.com/mirrors.nju.edu.cn/g' /etc/apt/sources.list
# 使用南京大学的 apk 源并安装构建工具
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.nju.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache \
curl \
# git>=2.18 \
build-base \
openjdk11 \
python3 \
py3-pip \
grep \
go \
rust \
ruby \
php \
ghc \
perl \
lua5.3 \
&& \
apk add --no-cache git \
&& rm -rf /var/cache/apk/*
# 更新系统并安装常用工具
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
build-essential \
software-properties-common \
apt-transport-https \
&& rm -rf /var/lib/apt/lists/*
# 安装 Node.js替换为南京大学的源
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
# sed -i 's|deb.nodesource.com|mirror.nju.edu.cn/nodesource/deb|g' /etc/apt/sources.list.d/nodesource.list && \
apt-get update && apt-get install -y nodejs && npm config set registry https://repo.nju.edu.cn/repository/npm/ # 修改源
# 安装其他语言的编译器和工具
RUN apt-get update && apt-get install -y \
gcc g++ make \
openjdk-11-jdk \
python3 python3-pip \
golang \
rustc cargo \
ruby-full \
php composer \
ghc cabal-install \
perl \
lua5.3 \
&& rm -rf /var/lib/apt/lists/*
# 安装 .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/*
# 设置 npm 镜像源
RUN npm config set registry https://repo.nju.edu.cn/repository/npm/
# 设置工作目录
WORKDIR /workspace
# 暴露端口(如有需要)
#EXPOSE 3000
# # 复制 package.json 和 package-lock.json
# COPY package.json ./
# # COPY package-lock.json ./
# # 安装 Node.js 依赖
# RUN npm install
# 复制剩余的项目文件
COPY . .
# 第二阶段:运行阶段(极限小)
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 \
# git>=2.18 \
openjdk11 \
python3 \
grep \
go \
rust \
ruby \
php \
ghc \
perl \
lua5.3 \
&& \
apk add --no-cache git \
&& rm -rf /var/cache/apk/*
# 设置工作目录
WORKDIR /workspace
# 从构建阶段复制必要文件
COPY --from=builder /workspace /workspace
# 默认启动 Bash
CMD ["bash"]

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": "fly6516",
"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"
}
}