使用Idea创建一键部署项目到Docker

好似是故人 2024-08-26 11:37:01 阅读 57

1. 安装docker

<code>这里注意如果你是新服务器,请先安装yum源

1.1 安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 配置镜像源

//这里配阿里置国内镜像,会快很多

yum config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

1.4 安装 containerd

yum install -y containerd.io --allowerasing

1.5 安装 Docker Engine-Community

# 搜索存储库中可用的版本,按照版本号从高到低排序

yum list docker-ce --showduplicates | sort -r

# 选择可用的版本

yum install -y docker-ce-[这里填版本号]

1.6 验证docker是否安装成功,以及设置开机自启

docker version

1.7 docker常用命令

//设置开机自启(强烈建议使用)

systemctl enable docker

//启动 Docker

systemctl start docker

//重启 Docker

systemctl restart docker

//停止 Docker

systemctl stop docker

2.IDEA连接Docker

1.开启Docker远程连接

idea整合docker,需要连接到docker,这就需要开启docker的远程连接了

执行命令

sudo vim /usr/lib/systemd/system/docker.service

在如下位置添加内容

-H unix://var/run/docker.sock -H tcp://0.0.0.0:2375

保存后,执行命令

<code>systemctl daemon-reload

systemctl restart docker

重启docker 输入命令下面命令查询端口是否开启成功

netstat -ntlp

2.配置IDEA的Docker插件

2.1.IDEA安装Docker插件

2.2.配置Docker信息

打开IDEA底部services,已经能看到连接上Docker和所有的镜像和容器信息。

3 开始部署项目

3.1 添加 Dockerfile 文件

首先呢在项目根目录添加 Dockerfile 文件,什么是根目录,就是和你pom.xml同级的

<code># 基础镜像

FROM java:8

# 维护者信息

LABEL maintainer=<zhangsan@163.com>

#设置容器时区为当前时

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

# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层

# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

VOLUME /tmp

# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下

ADD target/admin-boot.jar app.jar

# 容器启动执行命令

ENTRYPOINT ["java","-jar","app.jar"]

#声明容器提供服务端口

EXPOSE 8180

3.2 运行配置

4 配置不同的YML实现开发和部署环境切换

4.1 配置公共配置信息和切换环境信息 application.yml

<code>#配置服务器端口号、路径

server:

port: 8180

servlet:

context-path: /instrumentBook

spring:

profiles:

active: prod #dev开发环境,prod生产环境

task:

execution:

pool:

max-size: 10

mybatis:

#配置实体类 类型别名,首字母小写!

type-aliases-package: com.jlict.entity

#开启日志

configuration:

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

# 全局的id生成策略

mybatis-plus:

global-config:

db-config:

table-prefix: t_

#开启日志

configuration:

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4.2 配置开发环境信息 application-dev.yml

spring:

#数据库连接信息

datasource:

druid:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/数据库?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8

username: 数据库连接用户名

password: 数据库连接密码

#Redis连接信息

redis:

host: localhost

port: 6379

database: 0

password:

lettuce:

pool:

max-active: 8

max-wait: -1ms

max-idle: 8

min-idle: 0

timeout: 5000ms

#静态文件访问地址

web:

resources:

static-locations: "file:D:/EquipImg/"

#文件上传地址

equipUpload:

imgDir: D:/EquipImg/

4.3 配置生产环境信息 application-prod.yml

spring:

#数据库连接信息

datasource:

druid:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/数据库?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8

username: 数据库连接用户名

password: 数据库连接密码

#Redis连接信息

redis:

host: localhost

port: 6379

database: 0

password:

lettuce:

pool:

max-active: 8

max-wait: -1ms

max-idle: 8

min-idle: 0

timeout: 5000ms

#静态文件访问地址

web:

resources:

static-locations: "file:/EquipImg/"

#文件上传地址

equipUpload:

imgDir: /EquipImg/



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。