A clean and elegant team navigation homepage with multi-architecture support for easy self-hosting.
295
TeamNav 是一款简洁好看的团队导航页(首页)项目。
原版作者仅提供了 x86_64 架构的 Docker 镜像,本项目基于原版源码重新构建,补充了以下支持:
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
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
| 变量 | 说明 | 默认值 |
|---|---|---|
PARAMS | Java 启动参数 | 空 |
| 路径 | 说明 |
|---|---|
/logs | 应用日志目录 |
/database | 数据库文件目录 |
/ext-resources | 扩展资源目录 |
首次启动后访问管理页面:
http://<your-ip>:8080/adminadmin123456建议首次登录后立即修改密码。
┌─────────────────────────────────────────┐
│ Alpine Linux │
│ ┌─────────────────────────────────┐ │
│ │ OpenJDK 8u201 JRE │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ team-nav.jar │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
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"]
Content type
Image
Digest
sha256:b92c154d9…
Size
116.6 MB
Last updated
4 months ago
docker pull micrograils/team-nav