小说网站

我爱海鲸 2026-02-13 14:42:17 暂无标签

简介小说精品屋

jdk21下载地址:

https://www.oracle.com/cn/java/technologies/downloads/#jdk21-windows

后端:https://gitee.com/novel_dev_team/novel

前端:https://gitee.com/novel_dev_team/novel-front-web

 

前端启动:

# 1. 全局安装yarn(需要先安装Node.js,建议Node.js 14+)
npm install -g yarn

# 2. 进入项目目录,重新安装依赖(确保依赖和yarn.lock一致)
yarn install

# 3. 启动项目(用yarn替代npm)
yarn serve

打包:
yarn build

dockerfile

# 使用Eclipse Temurin 21 JDK Alpine作为基础镜像
FROM eclipse-temurin:21-jdk-alpine

# 添加元数据标签
LABEL maintainer=""
LABEL name="novel"
LABEL version="1.0.0"
LABEL description="novel - 小说网站"
LABEL org.opencontainers.image.title="novel"
LABEL org.opencontainers.image.description="novel - 小说网站"
LABEL org.opencontainers.image.version="1.0.0"
LABEL org.opencontainers.image.authors=""

# 设置工作目录
WORKDIR /app

# 设置时区
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
    echo $TZ > /etc/timezone

# 安装curl用于健康检查
RUN apk add --no-cache curl

# 创建非root用户
RUN addgroup -g 1001 appuser && adduser -D -u 1001 -G appuser appuser

# 复制jar包到容器中
COPY novel.jar app.jar

# 创建配置和日志目录用于挂载
# 创建 /opt/docker/novel 目录及其子目录(config 和 logs)
RUN mkdir -p /opt/docker/novel/config && \
    mkdir -p /opt/docker/novel/logs && \
    chmod -R 755 /opt/docker/novel

# 修改文件所有者
RUN chown -R appuser:appuser /app && \
    chown -R appuser:appuser /opt/docker/novel

# 切换到非root用户
USER appuser

# 暴露端口
EXPOSE 8888

# 设置JVM参数和环境变量
ENV JAVA_OPTS="-Xms500m -Xmx500m -XX:+UseContainerSupport"

# 健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
  CMD curl -f http://localhost:8888/actuator/health || exit 1

# 启动应用
# 优先使用挂载的配置文件,如果不存在则使用默认配置
# 使用 prod profile 确保日志输出到文件(logback-spring.xml 中 prod 环境才会输出到文件)
# 如果挂载目录中存在 logback-spring.xml,则使用外部日志配置文件
ENTRYPOINT ["sh", "-c", " \
  SPRING_ARGS='--spring.profiles.active=prod'; \
  if [ -f /opt/docker/novel/config/application.yml ]; then \
    SPRING_ARGS=\"$SPRING_ARGS --spring.config.location=classpath:/application.yml,file:/opt/docker/novel/config/application.yml\"; \
  fi; \
  if [ -f /opt/docker/novel/config/logback-spring.xml ]; then \
    SPRING_ARGS=\"$SPRING_ARGS --logging.config=file:/opt/docker/novel/config/logback-spring.xml\"; \
  fi; \
  java $JAVA_OPTS -jar app.jar $SPRING_ARGS \
"]

相关运行命令:

mkdir -p /opt/docker/novel/config
mkdir -p /opt/docker/novel/logs
mkdir -p /opt/docker/novel/images

# 修改宿主机挂载目录的权限(关键:指定UID=1001,GID=1001)
sudo chown -R 1001:1001 /opt/docker/novel

docker build -f DockerFile -t novel:1.0.0 .

# 停止并删除现有容器(先清理)
docker stop novel && docker rm novel && docker rmi novel:1.0.0
docker stop novel && docker rm novel

# 重新启动容器(启动命令不变)
docker run -d \
--name novel \
-p 8888:8888 \
-v /opt/docker/novel/config:/opt/docker/novel/config \
-v /opt/docker/novel/logs:/opt/docker/novel/logs \
-v /opt/docker/novel/images:/opt/docker/novel/images \
-e TZ=Asia/Shanghai \
--restart=always \
novel:1.0.0

你好:我的2025

上一篇:jdk21