IDEA使用Docker插件发布jar包小记

191 阅读5分钟

【背景】最近测试环境发版巨感无聊,重复性的jps查进程、kill -9 、然后就是Ctrl+C和Ctrl+V上传,在java -jar 启动jar。本人也是新手,不太了解sh脚本已经其它的操作工具。在无意中看到可以通过IDEA直接上传jar包病运行的方式,特别去了解操作一下,特此记录一下。

一、服务器环境

公司提供的测试服务器(CentOS Stream)

1、服务器安装docker

1、先卸载系统之前的老版本docker


sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2、查看当前的系统,要求系统内核3.0以上

uname -r

3、安装依赖包(如果未安装的话)

yum install -y yum-utils

【注意⚠️】 到了这一步我就开始各种问题报错,安装不成功ERROR和404满天飞; 【排除问题】 1、猜测服务器无法访问外网(结果真的梦想成真),测试方法ping外网地址(百度、谷歌)测试一下。

ping www.baidu.com

后续运维同学帮我放开后,可以访问到外网。但是依然ERROR和404满天飞; 2、猜测是因为yum的源不OK了。无法下载,然后在查看/etc/yum.repos.d文件夹下一堆源地址配置项(暂时这么理解)。 具体报错内容

Errors during downloading metadata for repository 'base':
  - Curl error (28): Timeout was reached for http://mirrors.aliyuncs.com/centos/8-stream-stream-stream-stream/BaseOS/aarch64/os/repodata/repomd.xml [Connection timed out after 30001 milliseconds]
  - Status code: 404 for http://mirrors.aliyun.com/centos/8-stream-stream-stream-stream/BaseOS/aarch64/os/repodata/repomd.xml (IP: 183.201.84.178)
错误:为 repo 'base' 下载元数据失败 : Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

解决方案: 第一步:进入这个文件,在终端输入:

    cd /etc/yum.repos.d/

第二步:删除.repo,输入下面命令,输入 y

    rm *.repo

第三步:查看当前目录下的.repo是否删除成功,输入下面字符串,若没有显示.repo就删除成功了

ls

第四步:下载可以正常使用的.repo文件 安装curs命令的使用:

    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

安装wgets命令的使用

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

第五步:运行yum makecache

    yum makecache

出现如下就是完成了! 之后我们就重新安装命令就可以了! 如上引用地址码头

4、安装Docker 运行所需的底层依赖关系的包

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

5、安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源)


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

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

6、更新yum,建立缓存

sudo yum makecache fast

二、Docker安装

目前有两个版本:

  • Docker-CE (Community Edition):社区版(开源免费)。
  • Docker-EE (Enterprise Edition):企业版(闭源收费)。

1、查看系统可用的 Docker CE 所有版本及其排序

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

2、安装Docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

【可能用上】

sudo yum erase podman buildah

【查看是否安装成功】

docker version

3、启动Docker

systemctl start docker
systemctl status docker

4、若需开机启动,执行

systemctl enable docker

5、修改docker配置文件

5.1、修改docker.service文件

在 /usr/lib/systemd/system/docker.service目录下编辑 docker.service 文件搜索 ExecStart= 找到下面的配置进行修改。 修改如下内容:将

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

改为:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

来源:星火染星野转存失败,建议直接上传图片文件

5.2、 重启服务

systemctl daemon-reload

systemctl restart docker

这样配置后,Docker私有仓库就会在2375端口上运行,可以使用2375端口来进行远程操作。

三、开放服务器端口

1、查看当前服务器所开放端口

firewall-cmd --list-port

2、 开放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

3、 重启防火墙

firewall-cmd --reload

四、IDEA配置Docker插件

4.1 Docker插件安装

打开idea,从file->settings->plugins->install jetbrains plugin进入插件安装界面,在搜索框中输入docker,可以看到docker ,点击右边的install按钮进行安装。安装后重启idea。 转存失败,建议直接上传图片文件

重启后配置docker,连接到远程docker服务。从file->settings->build,execution,deployment->docker打开配置界面。

4.2配置dockerfile文件:在工程根目录下新建dockerfile文件

转存失败,建议直接上传图片文件 内容如下:

# 基础镜像
FROM openjdk:8-jre
# 维护者信息
MAINTAINER 刘小二
# 创建一个存放工程的目录
RUN mkdir -p /usr/JCSZYX/java
# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone
# 复制主机jar包至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD target/hxls-market-0.0.1-SNAPSHOT.jar /usr/JCSZYX/java/hxls-market-0.0.1-SNAPSHOT.jar
# 容器启动执行命令
ENTRYPOINT ["java","-jar", "/usr/JCSZYX/java/hxls-market-0.0.1-SNAPSHOT.jar"]
# 对外暴露的端口号
EXPOSE  7080

4.3配置Docker启动项

五、打包测试上传服务器流程

在idea的右边找到Maven,找到Lifecycle,双击package打包,第一次打包比较慢,需要安静等待。 到此也小结一下,此时此刻服务器上的容器是运行起来了,记得开启jar的服务端口,后续在补充其它。其它博主写的很赞,我只时小记一下。