81 lines
1.9 KiB
Docker
81 lines
1.9 KiB
Docker
FROM rust:1.85
|
|
|
|
# 设置环境变量
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=Asia/Shanghai
|
|
ENV PATH="/root/.deno/bin:/root/.cargo/bin:${PATH}"
|
|
|
|
# 安装基础依赖
|
|
RUN apt-get update && apt-get install -y \
|
|
python3.11 \
|
|
python3.11-venv \
|
|
python3.11-distutils \
|
|
python3.11-dev \
|
|
python3-pip \
|
|
curl \
|
|
vim \
|
|
net-tools \
|
|
gettext-base \
|
|
telnet \
|
|
wget \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
|
|
&& echo $TZ > /etc/timezone
|
|
|
|
# 安装 Node.js
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& npm install -g npm@latest
|
|
|
|
# 安装 go
|
|
# 设置 Go 环境变量
|
|
ENV GOPATH=/root/go
|
|
ENV PATH=$PATH:/usr/local/go/bin:/root/go/bin
|
|
|
|
# 创建 Go 工作目录
|
|
RUN mkdir -p $GOPATH/bin $GOPATH/src $GOPATH/pkg
|
|
# 安装 Go 1.24(根据架构自动选择下载链接)
|
|
ARG TARGETARCH
|
|
RUN echo "Target Architecture: $TARGETARCH" \
|
|
&& if [ "$TARGETARCH" = "amd64" ]; then \
|
|
GO_URL="https://go.dev/dl/go1.24.3.linux-amd64.tar.gz"; \
|
|
elif [ "$TARGETARCH" = "arm64" ]; then \
|
|
GO_URL="https://go.dev/dl/go1.24.3.linux-arm64.tar.gz"; \
|
|
else \
|
|
echo "Unsupported architecture: $TARGETARCH"; \
|
|
exit 1; \
|
|
fi \
|
|
&& echo "Downloading Go from: $GO_URL" \
|
|
&& curl -fsSL "$GO_URL" -o go.tar.gz \
|
|
&& tar -C /usr/local -xzf go.tar.gz \
|
|
&& rm go.tar.gz \
|
|
&& ln -s /usr/local/go/bin/go /usr/local/bin/go \
|
|
&& ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt
|
|
|
|
|
|
RUN go version
|
|
|
|
# 测试mcp用 go-mcp-mysql@latest
|
|
RUN go install -v github.com/Zhwt/go-mcp-mysql@latest
|
|
|
|
|
|
# 安装 Deno
|
|
RUN curl -fsSL https://deno.land/install.sh | sh
|
|
|
|
|
|
# 安装 uv
|
|
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
|
|
# 添加uv到PATH
|
|
ENV PATH="/root/.local/bin:${PATH}"
|
|
|
|
# 创建虚拟环境
|
|
RUN uv venv
|
|
|
|
# 设置工作目录
|
|
WORKDIR /app
|
|
|
|
# 暴露端口,实际端口一般是8080
|
|
EXPOSE 8080
|
|
|