lushdog 6 luni în urmă
părinte
comite
babecd24fc
4 a modificat fișierele cu 74 adăugiri și 16 ștergeri
  1. 2 16
      Dockerfile
  2. 24 0
      README.md
  3. 36 0
      build.sh
  4. 12 0
      docker-compose.yml

+ 2 - 16
Dockerfile

@@ -1,22 +1,16 @@
-# 使用多阶段构建
 FROM debian:bullseye-slim AS builder
 
-# 设置工作目录
 WORKDIR /app
 
-# 安装必要的依赖
 RUN apt-get update && apt-get install -y \
     curl \
     && rm -rf /var/lib/apt/lists/*
 
-# 设置环境变量
 ENV NEXUS_HOME=/root/.nexus
 ENV BIN_DIR=/root/.nexus/bin
 
-# 创建必要的目录
 RUN mkdir -p ${NEXUS_HOME} ${BIN_DIR}
 
-# 下载并安装Nexus CLI
 RUN curl -s https://api.github.com/repos/nexus-xyz/nexus-cli/releases/latest | \
     grep "browser_download_url" | \
     grep "nexus-network-linux-x86_64\"" | \
@@ -24,30 +18,22 @@ RUN curl -s https://api.github.com/repos/nexus-xyz/nexus-cli/releases/latest | \
     xargs -I {} curl -L -o ${BIN_DIR}/nexus-network {} && \
     chmod +x ${BIN_DIR}/nexus-network
 
-# 最终镜像
-FROM debian:bullseye-slim
+FROM ubuntu:24.04-slim
 
-# 设置工作目录
 WORKDIR /app
 
-# 安装必要的依赖
 RUN apt-get update && apt-get install -y \
     curl \
     && rm -rf /var/lib/apt/lists/*
 
-# 设置环境变量
 ENV NEXUS_HOME=/root/.nexus
 ENV BIN_DIR=/root/.nexus/bin
 ENV PATH="${BIN_DIR}:${PATH}"
 
-# 从builder阶段复制二进制文件
 COPY --from=builder ${BIN_DIR}/nexus-network ${BIN_DIR}/nexus-network
 
-# 创建必要的目录
 RUN mkdir -p ${NEXUS_HOME}
 
-# 设置入口点
 ENTRYPOINT ["nexus-network"]
 
-# 默认命令
-CMD ["start"]
+CMD ["start", "--node-id", "${NODE_ID}"]

+ 24 - 0
README.md

@@ -0,0 +1,24 @@
+# Nexus Network Docker
+
+这个 Docker 镜像用于运行 Nexus Network 节点。
+
+## 配置
+
+### 方法: 使用 .env 文件
+
+1. 创建 `.env` 文件:
+```bash
+cp .env.example > .env
+```
+
+2. 使用 docker-compose 运行:
+```bash
+docker-compose up -d
+```
+
+
+## 注意事项
+
+- 请将 `your-actual-node-id` 替换为你的实际节点 ID
+- `.env` 文件已被 `.gitignore` 忽略,不会被提交到版本控制
+- 数据会持久化保存在 Docker volume 中 

+ 36 - 0
build.sh

@@ -0,0 +1,36 @@
+#!/bin/bash
+
+IMAGE_NAME="ghcr.io/lushdog/nexus-network:latest"
+
+# 显示开始构建的信息
+echo "开始构建镜像: $IMAGE_NAME"
+
+# 构建镜像,注意修正了--no-cache的拼写
+docker build . --tag $IMAGE_NAME --no-cache
+
+# 检查构建是否成功
+if [ $? -eq 0 ]; then
+    echo "镜像构建成功!"
+    
+    # 检查是否已登录Docker
+    docker info | grep "Username:" > /dev/null
+    
+    if [ $? -eq 0 ]; then
+        echo "检测到Docker已登录,准备推送镜像..."
+        docker push $IMAGE_NAME
+        
+        if [ $? -eq 0 ]; then
+            echo "镜像推送成功!"
+        else
+            echo "镜像推送失败,请检查权限或网络连接。"
+            exit 1
+        fi
+    else
+        echo "Docker未登录,跳过推送步骤。如需推送,请先运行 'docker login'。"
+    fi
+else
+    echo "镜像构建失败,请检查错误信息。"
+    exit 1
+fi
+
+echo "脚本执行完成。"

+ 12 - 0
docker-compose.yml

@@ -0,0 +1,12 @@
+services:
+  nexus-network:
+    image: ghcr.io/lushdog/nexus-network:latest
+    network_mode: host
+    build:
+      context: .
+      dockerfile: Dockerfile
+    environment:
+      - NODE_ID=${NODE_ID}
+    volumes:
+      - ./data:/root/.nexus
+    restart: unless-stopped