前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDEA-SpringBoot项目利用docker实现一键打包部署运行

IDEA-SpringBoot项目利用docker实现一键打包部署运行

作者头像
devi
发布2021-08-19 15:03:00
9410
发布2021-08-19 15:03:00
举报
文章被收录于专栏:搬砖记录搬砖记录

服务器上配置

1. 开启docker远程访问 cd /lib/systemd/system sudo vim docker.service

代码语言:javascript
复制
#替换或修改:127.0.0.1(本地网络访问)换成0.0.0.0表示不限制访问地址
[Service]
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

2. 重载配置 systemctl daemon-reload 3. 重启docker 服务 systemctl restart docker.service

4. 开放端口(,阿里云配置访问规则,本地telnet试试能否连通) ubuntu命令:

  • sudo ufw allow 2375

centos命令:

  • firewall-cmd --zone=public --add-port=2375/tcp --permanent systemctl restart firewalld

windows配置

1. 配置用户环境变量

在这里插入图片描述
在这里插入图片描述

2. IDEA设置 需要先下载IDEA的docker插件,在插件市场直接安装即可

在这里插入图片描述
在这里插入图片描述

项目设置

1. pom文件 加入docker打包插件

代码语言:javascript
复制
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <repository>${project.name}</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                    <dockerfile>Dockerfile</dockerfile>
                </configuration>
            </plugin>
        </plugins>
    </build>

2. pom同级目录下写Dockerfile

代码语言:javascript
复制
# 添加 Java 8 镜像来源
FROM java:8

# 添加参数
ARG JAR_FILE

# 添加 Spring Boot 包
ADD target/${JAR_FILE} app.jar

EXPOSE 8080

# 执行启动命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

完成到这一步,然后直接在maven中执行打包,就会自动将Springboot项目打包成镜像上传到远程 但是并不会执行,还需要手动执行一次,因此下面的步骤用于取消这个手动过程,嫌麻烦的可以直接使用docker run命令执行镜像即可

**3. 配置本地免密ssh登录 ** windows本地: 执行生成ssh密钥,一路回车即可 ssh-keygen 生成的密钥文件会在C:\Users\你的账号.ssh下

将该目录下的id_rsa.pub文件内容追加到远程服务器的/home/你的用户名/.ssh下的authorized_keys文件中 如果没有authorized_keys文件,先用touch创建,然后把id_rsa.pub的内容追加进去。 必须要有authorized_keys文件,直接将id_rsa.pub放进去是没用的

4. 编写sh执行脚本 其内的端口号等docker执行命令按需更改

代码语言:javascript
复制
# 项目名称
projectName="maven-docker"
# 项目版本号
projectVersion="0.0.1-SNAPSHOT"
ssh 你的账号@你的IP "echo "你的sudo密码"|sudo -S docker stop ${projectName};sudo docker rm ${projectName};sudo docker run --net=host  --name=${projectName} -d -p 8080:8080 ${projectName}:${projectVersion};echo '执行完毕,回车继续...';read -p ''"

由于我的docker没有加入到可执行sudo命令的用户组,因此这里需要用sudo命令。 sudo -S 的意思是,从前面的echo中获取sudo命令

使用方法

  1. maven package 打包 (这一步会制作镜像并上传到远程docker仓库中)
  2. 运行sh文件 (这一步运行镜像)
  3. 访问
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务器上配置
  • windows配置
  • 项目设置
  • 使用方法
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档