您当前的位置: 首页 >  容器

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JEECG容器化部署

发布时间:2020-06-04 22:31:53 ,浏览量:0

JEECG代码中有一个Dockerfile,基本思路是以CentOS为基础镜像,在其中安装了nginx、jdk、mysql和redis,将编译出来的前端文件拷贝至nginx的指定目录,后端的jar文件放至根目录,并生成nginx的配置文件和脚本启动文件,在脚本启动文件中启动redis、nginx和java -jar的后端服务,这篇文章将MySQL和Redis拿出来,作为容器化部署的一种粗糙的解决方式。

为何不使用Alpine

大概率是因为验证码这样的东西需要sun.awt相应的支持,alpine下的OpenJDK的JRE无法支持,详细可参看:

  • https://liumiaocn.blog.csdn.net/article/details/106557551
步骤1: 启动Redis

执行命令:docker run -d --name redis -p 6379:6379 -d redis:6.0.4

liumiaocn:jeecg liumiao$ docker run -d --name redis -p 6379:6379 -d redis:6.0.4
Unable to find image 'redis:6.0.4' locally
6.0.4: Pulling from library/redis
Digest: sha256:ec277acf143340fa338f0b1a9b2f23632335d2096940d8e754474e21476eae32
Status: Downloaded newer image for redis:6.0.4
29bf8656bc8b14a8ee7d64ed97f4f555246ef688cdaf2fae9bb797e92cb35814
liumiaocn:jeecg liumiao$ docker ps |grep redis
29bf8656bc8b        redis:6.0.4         "docker-entrypoint.s…"   7 seconds ago       Up 5 seconds        0.0.0.0:6379->6379/tcp   redis
liumiaocn:jeecg liumiao$
步骤2: 启动MySQL

执行命令: docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d liumiaocn/mysql:5.7.16

liumiaocn:jeecg liumiao$ docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d liumiaocn/mysql:5.7.16
49ec74507aa7d70b320139ebed132424351bb7fb433c82d05945100260ea0f41
liumiaocn:jeecg liumiao$ docker ps |grep mysql
49ec74507aa7        liumiaocn/mysql:5.7.16   "docker-entrypoint.s…"   16 seconds ago       Up 15 seconds       0.0.0.0:3306->3306/tcp   mysql
liumiaocn:jeecg liumiao$
步骤3: 设定MySQL

MySQL启动之后需要作如下三件事情:

  • 建库
  • 建表以及初始化数据
  • 设定大小写不敏感

前面两件事情都有SQL文件,通过执行即可完成,大小写敏感容易被忽视,不过也很容易可以通过执行日志进行确认。事前进行如下准备,将JEECG的db下提供的如下两个SQL文件拷贝至MySQL容器之中

liumiaocn:jeecg-boot liumiao$ docker cp 1mysql_schema.sql mysql:/tmp
liumiaocn:jeecg-boot liumiao$ docker cp 2jeecgboot_mysql5.7.sql mysql:/tmp
liumiaocn:jeecg-boot liumiao$
建库
liumiaocn:jeecg-boot liumiao$ docker exec -it mysql sh # ls /tmp 1mysql_schema.sql 2jeecgboot_mysql5.7.sql # mysql -uroot -proot mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> source /tmp/1mysql_schema.sql Query OK, 1 row affected (0.01 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jeecg-boot | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> 
建表以及初始化数据
mysql> use jeecg-boot Database changed
mysql> source /tmp/2jeecgboot_mysql5.7.sql Query OK, 0 rows affected (0.00 sec) ...省略
Query OK, 1 row affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) mysql> show tables; +-------------------------------+ | Tables_in_jeecg-boot | +-------------------------------+ | demo | | demo_field_def_val_main | | demo_field_def_val_sub | | jeecg_monthly_growth_analysis | | jeecg_order_customer | | jeecg_order_main | | jeecg_order_ticket | | jeecg_project_nature_income | | joa_demo | | onl_cgform_button | | onl_cgform_enhance_java | | onl_cgform_enhance_js | | onl_cgform_enhance_sql | | onl_cgform_field | | onl_cgform_head | | onl_cgform_index | | onl_cgreport_head | | onl_cgreport_item | | onl_cgreport_param | | oss_file | | qrtz_blob_triggers | | qrtz_calendars | | qrtz_cron_triggers | | qrtz_fired_triggers | | qrtz_job_details | | qrtz_locks | | qrtz_paused_trigger_grps | | qrtz_scheduler_state | | qrtz_simple_triggers | | qrtz_simprop_triggers | | qrtz_triggers | | sys_announcement | | sys_announcement_send | | sys_category | | sys_check_rule | | sys_data_log | | sys_data_source | | sys_depart | | sys_depart_permission | | sys_depart_role | | sys_depart_role_permission | | sys_depart_role_user | | sys_dict | | sys_dict_item | | sys_fill_rule | | sys_log | | sys_permission | | sys_permission_data_rule | | sys_position | | sys_quartz_job | | sys_role | | sys_role_permission | | sys_sms | | sys_sms_template | | sys_user | | sys_user_agent | | sys_user_depart | | sys_user_role | | test_demo | | test_enhance_select | | test_order_main | | test_order_product | | test_person | | test_shoptype_tree | +-------------------------------+ 64 rows in set (0.00 sec) mysql> 
设定大小写不敏感
mysql> exit
Bye
# echo "lower_case_table_names=1" >>/etc/mysql/mysql.conf.d/mysqld.cnf
#
重启MySQL容器

因为大小写不敏感的设定需要重启MySQL容器才能生效,所以需要使用docker restart mysql重启MySQL容器

liumiaocn:jeecg-boot liumiao$ docker restart mysql
mysql
liumiaocn:jeecg-boot liumiao$
步骤4: 启动jeecg容器

本文使用基于CentOS的JEECG镜像,为了简单,此镜像将前端和后端放在了一起,所以容器中会有两个进程存在,强迫症患者可以进一步拆分,由此产生的各种设定修改请自行负责。

执行命令:docker run --name=jeecg -d -p 8080:8080 -p 8088:80 liumiaocn/jeecg:centos-2.2.0

liumiaocn:jeecg-boot liumiao$ docker run --name=jeecg -d -p 8080:8080 -p 8088:80 liumiaocn/jeecg:centos-2.2.0
16318371bb5dd33eea37f76eeabf6710dd0c0d65c43e23870d17dbde188dc655
liumiaocn:jeecg-boot liumiao$ docker ps |grep jeecg
16318371bb5d        liumiaocn/jeecg:centos-2.2.0   "/bin/sh -c '/bin/sh…"   6 seconds ago       Up 4 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:8088->80/tcp   jeecg
liumiaocn:jeecg-boot liumiao$
步骤5: 确认结果

通过docker logs jeecg进行确认,如果日志中出现了如下类似结果,说明已经成功启动了:

----------------------------------------------------------
	Application Jeecg-Boot is running! Access URLs:
	Local: 		http://localhost:8080/jeecg-boot/
	External: 	http://172.17.0.4:8080/jeecg-boot/
	Swagger-UI: 		http://172.17.0.4:8080/jeecg-boot/doc.html
----------------------------------------------------------
liumiaocn:jeecg-boot liumiao$
登录确认页面

使用http://localhost:8088/来在本机进行登录确认 在这里插入图片描述 登录结果确认 在这里插入图片描述

注意事项

本文进行示例说明时,为了主要说明JEECG的部署方式的重点,容器启动的持久数据的保存均未列出,请根据需要自行设定。另外jar文件中由于使用了外部的Redis和MySQL服务,所以在实际使用时需要根据需要进行设定,

  • 配置文件所在目录:jeecg-boot/jeecg-boot-module-system/src/main/resources
  • 设定对象文件: application.yml
  • 修改内容: active部分需要设定为prod
liumiaocn:resources liumiao$ head -n3 application.yml 
spring:
  profiles:
    active: prod
liumiaocn:resources liumiao$
  • 设定对象文件: application.yml
  • 修改内容: 设定相应IP
liumiaocn:resources liumiao$ grep 192.168 application-prod.yml 
          url: jdbc:mysql://192.168.31.242:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false
    host: 192.168.31.242
liumiaocn:resources liumiao$
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.8803s