一. 前期准备工作
1、版本说明
- idea 2019
- docker 19.03.1
- ubunt 18
2、安装docker 参照
https://www.jianshu.com/nb/39832904
3、配置docker远程连接端口
# 登录远程服务器 修改 当前操作是ubuntu18
vim /lib/systemd/system/docker.service
# 修改ExecStart这行
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 重新加载配置文件
systemctl daemon-reload
# 重启服务
systemctl restart docker.service
# 查看端口是否开启
netstat -nlpt
注: 如果是云服务器记得打开开启设置的端口
4、 Idea安装插件
image5、连接远程docker
image6、docker图形界面
image二. 在工程根目录下创建docker-compose.yml
version: "3.7"
services:
# (可选)配置工程基础数据库
app-db:
#容器名字
container_name: db-order
image: mysql:5.7.22
#文件挂载,把数据库的数据保存到本工程的根目录
volumes:
- ./mysql/data:/var/lib/mysql
# 对外映射端口
ports:
- "3308:3306"
#一直重启
restart: always
# 配置
command:
# 防止低版本的连接客服报错的问题
--default-authentication-plugin=mysql_native_password
# 设置数据库的编码
--character-set-server=utf8mb4
# 设置数据库默认的排序方式
--collation-server=utf8mb4_general_ci
# 解决低版本不允许时间字段 not null
--explicit_defaults_for_timestamp=true
# Linux 表名区分大小写 1 表示不区分大小写
--lower_case_table_names=1
# 如果报错 去掉该行,主要是解决5.7group by语法错误的情况
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
environment:
# 初始化数据库密码
MYSQL_ROOT_PASSWORD: root
# 初始化数据库的名字
MYSQL_DATABASE: db_order
# 时区
TZ: Asia/Shanghai
# 采用dockerfile创建镜像部署(如果有多个子模块可写多个,每个指定配置指定dockerfile的路径就行)
app:
container_name: app-container
build: .
restart: always
ports:
- 9100:8080
depends_on:
- app-db
三. 在子工程根目录下创建dockerfile文件
注意名字为Dockerfile
,首字母大写
官方镜像都是基于openjdk所以自己造了一个,可以用过网络下载jdk,也可以本地上传jdk,本方法是采用本地上传,需把jdk文件与dockerfile放在容易文件夹下
FROM ubuntu
# java相关变量名
# 根据你自己的版本修改成对应的
ENV java jdk-8u221-linux-x64.tar.gz
ENV jdk jdk1.8.0_221
ADD ./${java} /usr/local/java/
# 设置java环境
ENV JAVA_HOME /usr/local/java/${jdk}
ENV CLASSPATH $JAVA_HOME/lib;$JAVA_HOME/jre/lib
ENV PATH $PATH:$JAVA_HOME/bin
# 上级目录的target
COPY ./target/*.jar app.jar
# 启动容器的时候 启动tomcat
ENTRYPOINT ["java","-jar","app.jar"]
结构图示
四. 编辑配置
image image将springboot工程打包
-
通过工具点击执行
屏幕快照 2019-09-22 17.58.02.png
点击运行
注意:创建完成时间看项目的大小而论,请耐心等待卡在一下界面为正常状态
网友评论