Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
ccee5e7257 | |||
8d361f7259 | |||
fa576b42c9 |
112
Dockerfile
112
Dockerfile
@ -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
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": "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"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user