JEECG容器化部署:Alpine镜像方式
在前面的一篇文章中提到了JEECG的Alpine镜像使用时出现的问题,就是验证码需要使用到fontmanager,而环境中的OPENJDK的JRE中又没有提供,所以退而求其次使用官方的Dockerfile中的CentOS的方式安装JDK来完成,通过验证发现提供openjdk8-jre、 fontconfig和ttf-dejavu就可以解决此问题。
Dockerfile
FROM nginx:1.18-alpineMAINTAINER liumiao liumiaocn@outlook.comRUN apk update \&& apk --no-cache add openjdk8-jre fontconfig ttf-dejavu \&& touch /etc/init.d/start.sh \&& chmod +x /etc/init.d/start.sh \&& echo "#!/bin/sh " >> /etc/init.d/start.sh \&& echo "/usr/sbin/nginx -c /etc/nginx/nginx.conf" >> /etc/init.d/start.sh \&& echo " java -jar /jeecgboot.jar " >> /etc/init.d/start.shADD jeecg-boot-module-system-2.2.0.jar jeecgboot.jar
ADD dist/ /usr/share/nginx/html/
ADD default.conf /etc/nginx/conf.d/default.confEXPOSE 80 8080
ENTRYPOINT /bin/sh -c /etc/init.d/start.sh
default.conf
server {listen 80;location ^~ /jeecg-boot {proxy_pass http://127.0.0.1:8080/jeecg-boot/;proxy_set_header Host 127.0.0.1;proxy_set_header X-Real-IP \$remote_addr;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;} location / {root /usr/share/nginx/html/;index index.html index.htm;if (!-e \$request_filename) {rewrite ^(.*)\$ /index.html?s=\$1 last;break;}}access_log /var/log/nginx/access.log ;
}
构建
构建命令示例:docker build -t liumiaocn/jeecg:alpine-2.2.0 -f Dockerfile.alpine .
注:另外请自行编译前端后端,提供相应的jar和dist目录即可构建。另外构建的镜像已上传至Dockerhub,可自行获取,使用时请注意使用自己的Jar替换,因为Jar中的Redis和MySQL的配置是硬编码的方式存在的。
部署和启动步骤
部署和启动步骤和前文整理的CentOS方式没有任何不同,详细可参看:
- https://liumiaocn.blog.csdn.net/article/details/106557982
唯一的区别在于使用的镜像名称不同:
启动示例命令:docker run --name=jeecg -d -p 8080:8080 -p 8088:80 liumiaocn/jeecg:alpine-2.2.0
结果确认
liumiaocn:jeecg liumiao$ docker ps |grep alpine
380a555d4df9 liumiaocn/jeecg:alpine-2.2.0 "/bin/sh -c '/bin/sh…" 35 minutes ago Up 35 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:8088->80/tcp jeecg
liumiaocn:jeecg liumiao$
JEECG容器化部署:Alpine镜像方式相关推荐
- JEECG容器化部署
JEECG代码中有一个Dockerfile,基本思路是以CentOS为基础镜像,在其中安装了nginx.jdk.mysql和redis,将编译出来的前端文件拷贝至nginx的指定目录,后端的jar文件 ...
- Docker容器化部署config-server无法直接访问
Docker容器化部署config-server无法直接访问 1. 本机ip启动方式: 2. Docker容器启动 1)问题 2)解决办法 - 本机启动 - 服务器启动俩种方式 3. dockerfi ...
- 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速...
Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方. 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜 ...
- .NET Core+MySql+Nginx 容器化部署
.NET Core容器化@Docker .NET Core容器化之多容器应用部署@Docker-Compose .NET Core+MySql+Nginx 容器化部署 GitHub-Demo:Dock ...
- 容器化部署与传统部署的区别及优势
编者按:随着互联网技术的发展和需求上的增加,从传统的物理服务器时代过渡到了容器化部署时代,那么容器化部署我们怎么去理解,以及它有什么优势呢?跟小编一起看看吧. 容器化部署与传统部署的区别 以Docke ...
- 小米Redis的K8s容器化部署实践
本文讲述了小米是如何将Redis Cluster部署在K8S上提供高质量的服务的 往期文章回顾:HBase Region Read Replicas功能详解 背景 Why K8S How K8s Wh ...
- Kubernetes集群搭建及容器化部署
Kubernetes集群搭建及容器化部署 目录 一.k8s 集群部署 2 1.k8s 快速入门 2 2.k8s 集群安装 10 二.k8s 容器化部署 18 1.Kubectl命令行部署 18 2.K ...
- Prometheus容器化部署,配合Grafan画图工具监控节点信息
文章目录 Prometheus 容器化部署,配合Grafan画图工具监控节点 部署 Prometheus 部署 node_exporter 部署grafana Prometheus 容器化部署,配合G ...
- Intel Developer Cloud - 开放的容器化部署平台
目录 概况介绍 示例演示 申请注册 概况介绍 Intel® DevCloud平台为每个注册用户提供独立的沙箱运行环境,并构建了完整的软件栈,开发者登录后不需要对环境做任何配置,不用担心软件之间的兼容问 ...
最新文章
- python模块之imghdr检测图片类型
- php cms拥有博客功能,20款最为知名的开源PHP CMS
- Windows 任务管理器进程详解
- java基础----Java的格式化输出
- Springmvc的helloworld实例
- Android的Button按钮,ACTION_UP事件不触发解决方案
- Android项目目录结构
- EduSoHo精品在线教育点播系统网站源码
- 三菱880彩铅和uni的区别_冷灰素描纸与彩铅、色粉笔结合,一种复古味道
- 如何从课堂与教学内容两方面提高培训效率------张孝祥
- WAV格式中常见的压缩编码
- 每日刷题之数独简单版 AcWing 1613
- 【单片机毕业设计】【mcuclub-103】智能花盆 | 智能养殖箱 | 多功能花盆 | 多功能养殖箱【实物设计】
- Excel 将两列合并变成第三列,中间加一个连字符
- 为什么使用 LinkedIn 进行联盟营销活动?
- 怎么html让元素脱离文档流,子元素设置绝对定位之后脱离文档流!
- 量子计算(5)基础知识3:量子逻辑门(下)
- C++进阶学习(二)----C到C++II
- MySQL的存储过程你了解吗?来看这篇文章,保证你不会后悔!
- python爬取qq好友_Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)...
热门文章
- [已解决] EnvironmentLocationNotFound: Not a conda environment: C:\Program Files\Anaconda3
- Vue 中 props 传值,父组件向子组件传递对象/数组可以直接修改的问题
- 为什么中国的房价降不下来?
- 数据库巡检 java_美团MySQL数据库巡检系统的设计与应用
- 微型计算机控制系统系统组成,微型计算机控制系统的组成
- 剑指offer刷题记录(上)
- 手把手带你搭建个人博客系统(一)
- 维基解密披露CIA Grasshopper远程木马套件 Windows预安装环境、Carberp财务恶意软件的计算机驻留方法都用上了...
- ArcGIS中统计渔网中栅格人口密度
- 【数据结构】树形结构