- 工具目录重写为 Ubuntu 构建环境导向(7 项),每项带安装命令提示 (apt/nvm,未安装时一键复制) - 新增 nvm 工具条目(真实检测,本机验证 0.40.6);Node.js 改为 nvm 管理:默认版本可调,构建时通过 nvm install $NODE_VERSION 灵活指定版本 - DeployTool 新增 installHint 字段(模型/更新白名单/seed) - 新增 deploy/Dockerfile.buildnode:Ubuntu 22.04 + JDK17/Maven/Git/ Docker CLI/Golang + nvm 默认 Node(--build-arg NODE_VERSION 可改) - 工具页顶部说明条更新构建环境建议
47 lines
1.7 KiB
Docker
47 lines
1.7 KiB
Docker
# FlowStack 构建节点镜像(Ubuntu 22.04)
|
||
# 用法: docker build -f deploy/Dockerfile.buildnode -t flowstack-buildnode .
|
||
# 自定义默认 Node 版本: docker build --build-arg NODE_VERSION=18 -f deploy/Dockerfile.buildnode -t flowstack-buildnode .
|
||
FROM ubuntu:22.04
|
||
|
||
ARG DEBIAN_FRONTEND=noninteractive
|
||
ARG NODE_VERSION=20
|
||
ENV NVM_DIR=/root/.nvm \
|
||
NVM_NODE_DEFAULT=${NODE_VERSION}
|
||
|
||
# 基础工具 + JDK17 + Maven + Git + Docker CLI(Ubuntu apt 一步到位)
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
openjdk-17-jdk-headless \
|
||
maven \
|
||
git \
|
||
docker.io \
|
||
curl ca-certificates unzip xz-utils \
|
||
tzdata \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# Golang(官方 tar,apt 的 golang 版本较旧)
|
||
ARG GOLANG_VERSION=1.24.2
|
||
RUN curl -fsSL https://go.dev/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - \
|
||
&& ln -s /usr/local/go/bin/go /usr/local/bin/go \
|
||
&& ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt
|
||
|
||
# nvm + 默认 Node 版本(构建时可在流水线脚本里 nvm install <ver> 灵活切换)
|
||
ARG NVM_VERSION=v0.40.1
|
||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh | bash \
|
||
&& . "$NVM_DIR/nvm.sh" \
|
||
&& nvm install ${NODE_VERSION} \
|
||
&& nvm alias default ${NODE_VERSION} \
|
||
&& echo '. "$NVM_DIR/nvm.sh"' >> /root/.bashrc
|
||
|
||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 \
|
||
PATH=/usr/local/go/bin:$PATH
|
||
|
||
# 构建工作空间
|
||
RUN mkdir -p /data/flowstack-workspace
|
||
WORKDIR /data/flowstack-workspace
|
||
|
||
# 验证工具链可用
|
||
RUN java -version && mvn -version && go version && git --version \
|
||
&& . "$NVM_DIR/nvm.sh" && node -v && npm -v
|
||
|
||
CMD ["bash", "-c", "echo 'FlowStack build node ready' && bash"]
|