37 lines
1.2 KiB
Docker
37 lines
1.2 KiB
Docker
|
|
# ====================================
|
|||
|
|
# 后端服务镜像 - School News Serv
|
|||
|
|
# 直接从主机复制构建好的JAR包
|
|||
|
|
# 注意:使用前需要先执行build.sh构建JAR包
|
|||
|
|
# ====================================
|
|||
|
|
FROM school-news-base-serv:latest
|
|||
|
|
|
|||
|
|
# 设置工作目录
|
|||
|
|
WORKDIR /app
|
|||
|
|
|
|||
|
|
# 1. 复制不经常变化的文件
|
|||
|
|
# 复制启动脚本
|
|||
|
|
COPY schoolNewsServ/docker/start.sh /app/start.sh
|
|||
|
|
# 复制爬虫脚本(基础镜像已安装依赖)
|
|||
|
|
COPY schoolNewsCrawler/ /app/crawler/
|
|||
|
|
# 复制默认配置文件
|
|||
|
|
COPY schoolNewsServ/admin/src/main/resources/application.yml /app/config/application.yml.template
|
|||
|
|
COPY schoolNewsServ/admin/src/main/resources/log4j2-spring.xml /app/config/log4j2-spring.xml.template
|
|||
|
|
|
|||
|
|
# 2. 设置脚本权限和创建目录
|
|||
|
|
RUN chmod +x /app/start.sh && \
|
|||
|
|
mkdir -p /app/logs
|
|||
|
|
|
|||
|
|
# 3. 最后复制JAR包(这行变化最频繁,放在最后)
|
|||
|
|
# 注意:这里假设JAR包已经通过build.sh构建在target目录下
|
|||
|
|
COPY schoolNewsServ/admin/target/admin-*.jar /app/app.jar
|
|||
|
|
|
|||
|
|
# 暴露端口
|
|||
|
|
EXPOSE 8081
|
|||
|
|
|
|||
|
|
# 健康检查
|
|||
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|||
|
|
CMD curl -f http://localhost:8081/schoolNewsServ/actuator/health || exit 1
|
|||
|
|
|
|||
|
|
# 启动应用
|
|||
|
|
ENTRYPOINT ["/app/start.sh"]
|