Sign inSign up

micrograils/team-nav

By micrograils

Updated 4 months ago

A clean and elegant team navigation homepage with multi-architecture support for easy self-hosting.

Image
Web servers
Content management system
0

295

micrograils/team-nav repository overview

TeamNav Docker 镜像

Docker Image Size Docker Pulls Platforms

背景

TeamNav 是一款简洁好看的团队导航页(首页)项目。

原版作者仅提供了 x86_64 架构的 Docker 镜像,本项目基于原版源码重新构建,补充了以下支持:

  • 多架构支持:amd64 / arm64
  • Java 版本:保持原作者指定的 Java 8 版本(OpenJDK 8u201)
  • Alpine Linux:使用轻量级 Alpine 基础镜像,镜像体积更小

使用说明

快速启动
docker run -d \
  --name team-nav \
  -p 8080:8080 \
  -v ./data/logs:/logs \
  -v ./data/database:/database \
  -v ./data/ext-resources:/ext-resources \
  micrograils/team-nav

启动后访问 http://<your-ip>:8080

Docker Compose 方式
services:
  team-nav:
    image: micrograils/team-nav:latest
    container_name: team-nav
    ports:
      - "8080:8080"
    volumes:
      - ./logs:/logs
      - ./database:/database
      - ./ext-resources:/ext-resources
    restart: unless-stopped
环境变量
变量说明默认值
PARAMSJava 启动参数
数据卷
路径说明
/logs应用日志目录
/database数据库文件目录
/ext-resources扩展资源目录
默认账号

首次启动后访问管理页面:

  • 地址:http://<your-ip>:8080/admin
  • 初始账号:admin
  • 初始密码:123456

建议首次登录后立即修改密码。

架构说明

┌─────────────────────────────────────────┐
│            Alpine Linux                 │
│  ┌─────────────────────────────────┐    │
│  │      OpenJDK 8u201 JRE          │    │
│  └─────────────────────────────────┘    │
│  ┌─────────────────────────────────┐    │
│  │         team-nav.jar            │    │
│  └─────────────────────────────────┘    │
└─────────────────────────────────────────┘

完整版 Dockerfile

ARG NODE_VERSION=16
ARG MAVEN_VERSION=3.9.9
ARG ALPINE_VERSION=3.23
ARG APP_VERSION=2.0.6

# 阶段一:前端构建
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION}-alpine AS frontend-builder

ARG APP_VERSION

WORKDIR /workspace

# 下载源码
RUN apk add --no-cache curl tar && \
    curl -L https://gitee.com/tuituidan/team-nav/archive/refs/tags/v${APP_VERSION}.tar.gz | tar -xz --strip-components=1

# 构建前端
WORKDIR /workspace/web
RUN npm install && npm run build

# 阶段二:后端构建
FROM --platform=$BUILDPLATFORM maven:${MAVEN_VERSION}-eclipse-temurin-8 AS backend-builder

ARG APP_VERSION

WORKDIR /workspace

# 从前端构建阶段复制源码(包含前端构建产物)
COPY --from=frontend-builder /workspace /workspace

# 1. 先执行 mvn clean compile -DskipTests
RUN mvn clean compile -DskipTests

# 2. 然后复制前端编译好的文件到 target/classes/static/
RUN mkdir -p target/classes/static && \
    cp -rf web/dist/* target/classes/static/

# 3. 最后执行 mvn package -DskipTests
RUN mvn package -DskipTests

# 阶段三:运行阶段
FROM --platform=$TARGETPLATFORM alpine:${ALPINE_VERSION}

ARG APP_VERSION

LABEL version="${APP_VERSION}"

# 安装运行环境
RUN apk add --no-cache openjdk8-jre-base tzdata && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

# 复制 jar 包
COPY --from=backend-builder /workspace/target/team-nav.jar app.jar

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
    CMD wget --quiet --tries=1 --spider http://localhost:8080/ || exit 1

EXPOSE 8080
VOLUME ["/logs","/database","/ext-resources"]
ENV PARAMS=""
ENTRYPOINT ["sh", "-c", "java $PARAMS -jar app.jar"]

相关链接

Tag summary

Content type

Image

Digest

sha256:b92c154d9

Size

116.6 MB

Last updated

4 months ago

docker pull micrograils/team-nav