04-Dockerfile示例

简介: 本文提供三个Dockerfile示例:基于Tomcat部署WAR包、OpenJDK运行SpringBoot JAR包、Nginx托管Vue项目,涵盖时区设置、文件复制、端口暴露等配置,助力快速构建容器化应用。

04-Dockerfile示例

app-web模块maven编译后,会将app-web模块打包成war包,可以使用tomcat作为基础镜像进行制作。Dockerfile示例:


FROM tomcat:9.0.90-jre8

LABEL maintainer="lalala"


# 设置时区为东八区时间

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" >/etc/timezone


# 复制编译的war包到tomcat的webapps目录

COPY target/myproject.war /usr/local/tomcat/webapps/myproject.war

WORKDIR /usr/local/tomcat


# 暴露tomcat的8080端口

EXPOSE 8080


# 启动tomcat

ENV JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"

ENTRYPOINT ["catalina.sh", "run"]

system-server模块maven编译后,会将system-server模块打包成jar包(SpringBoot项目),可以使用openjdk作为基础镜像进行制作。Dockerfile示例:



FROM openjdk:8u312-bullseye

LABEL maintainer="lalala"


# 设置时区为东八区时间

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" >/etc/timezone


# 复制编译的jar包到容器的/usr/src目录

COPY target/system-server-1.0.jar /usr/src/system-server/system-server.jar

WORKDIR /usr/src/system-server


# 设置使用dev环境配置、使用8093端口

ENV JAVA_PARAMS=" -Djava.security.egd=file:/dev/./urandom --server.port=8093 --spring.profiles.active=dev"

# 暴露8093端口

EXPOSE 8093


# 带着配置项运行jar包

ENTRYPOINT ["java", "-jar" ,"/usr/src/system-server/system-server.jar"]

CMD ["$JAVA_PARAMS"]


vue项目Nginx基础镜像打包使用Nginx作为基础镜像。

1

2

3

4

5

6

7

8

9

10

11

12

13

FROM nginx:1.27.0

LABEL maintainer="lalala"


# 设置时区为上海东八区

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" >/etc/timezone


# nginx 将编译生成的dist下的文件复制到容器/usr/share/nginx/html中

COPY dist/ /usr/share/nginx/html/myproject-vue/

# 复制nginx配置文件到容器/etc/

COPY nginx.conf /etc/nginx/nginx.conf


# 暴露80端口

EXPOSE 80

相关文章
|
iOS开发 MacOS Windows
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
3107 7
|
Linux
如何使用 Linux `date` 命令来指定时区?
如何使用 Linux `date` 命令来指定时区?
2060 0
|
消息中间件 存储 运维
Zabbix与ELK整合实现对安全日志数据的实时监控告警
Zabbix与ELK整合实现对安全日志数据的实时监控告警
Zabbix与ELK整合实现对安全日志数据的实时监控告警
|
4月前
|
存储 缓存 负载均衡
CP(强制一致性),AP(最终一致)
本文探讨RPC框架中的服务发现机制,对比DNS、ZooKeeper等方案,指出其在超大规模集群下的局限性。重点提出基于消息总线的最终一致性注册中心,通过AP模型替代CP,提升系统性能与稳定性,适用于高并发、大规模服务节点场景。
CP(强制一致性),AP(最终一致)
|
4月前
|
Java Shell Maven
06-nexus私仓环境搭建
本文介绍Nexus私有仓库环境搭建全过程,包括JDK安装、Nexus OSS版下载与解压、配置文件修改、创建nexus用户并启动服务。详细说明了如何通过Web界面登录、修改默认密码、配置匿名访问,并创建Maven私仓。同时提供上传本地jar包的两种方式,重点演示使用脚本批量导入本地仓库依赖的方法,包含清理无效文件、重命名元数据及执行上传命令等步骤,适用于企业内网构建Maven私服场景。
|
4月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
Nexus仓库是Sonatype推出的开源制品管理工具,支持Maven、Npm、Docker等格式。本文介绍其在Linux和Docker环境下的安装配置,包括JDK部署、OSS版下载、用户权限、匿名访问设置,以及仓库创建与上传下载操作,涵盖密码重置、数据持久化及脚本批量导入等内容,助力搭建高效私有仓库。
|
4月前
|
网络协议 算法 前端开发
07 | 架构设计:设计一个灵活的 RPC 框架
本文深入讲解如何设计一个灵活的 RPC 框架,从基础通信原理出发,剖析传输、协议、服务发现、连接管理等核心模块,并提出分层架构与插件化设计思想,提升系统可扩展性与维护性,助力构建高性能、易演进的分布式服务架构。
|
定位技术
探秘站点检测访问中代理 IP 的实用技巧
随着互联网发展,使用代理IP的需求增加。站点检测代理IP的方法包括:1. IP地址黑名单;2. HTTP头部检查(如X-Forwarded-For);3. 行为分析;4. 地理位置检测;5. CAPTCHA验证;6. 连接特征分析。这些技术帮助网站判断访问是否来自代理。
559 6
|
关系型数据库 MySQL Linux
MySQL8官方YUM仓库使用指南
MySQL 8 是广受欢迎的开源关系数据库管理系统,引入了诸多新特性和性能提升。本文介绍如何在 Linux 上通过 MySQL 官方 YUM 仓库安装和管理 MySQL 8。首先配置 YUM 仓库并安装 MySQL,启动服务后获取临时密码并登录。接着创建数据库与用户,使用 SQL 命令创建表格、插入及查询数据。此方法简便高效,适合快速上手 MySQL 8 的基本操作。
1074 13
|
人工智能 运维 监控
Zabbix告警分析新纪元:本地DeepSeek大模型实现智能化告警分析
本文由Zabbix中国峰会演讲嘉宾张世宏撰写,介绍如何通过集成Zabbix监控系统与深度求索(DeepSeek)AI助手,构建智能化告警处理方案。该方案利用Webhook机制传递告警信息,借助DeepSeek的智能分析能力,帮助运维团队快速识别问题根源并提供解决方案。文章详细描述了技术架构、环境搭建、Webhook配置及实际案例,展示了AI在运维领域的应用前景和优势。
2343 0

热门文章

最新文章

下一篇
开通oss服务