新手一次学会SpringBoot项目部署 + Docker中运行Samba服务设置共享目录

SpringBoot项目部署

1.IDEA打包,在IDEA终端,输入mvn clean package

2.将项目target中的jar包放入linux目录

3.运行jar包

  • 前台运行(直接显示输出):

    kotlin 复制代码
    java -jar data-transport-server-0.0.1-SNAPSHOT.jar
  • 后台运行:

    kotlin 复制代码
    nohup java -jar data-transport-server-0.0.1-SNAPSHOT.jar > data-transport.log 2>&1 &

&符号表示将该命令或脚本放入后台运行*

> 将标准输出重定向到 data-transport.log 文件,而 2>&1 则将标准错误也重定向到与标准输出相同的文件。

要查看或监视后台进程,您可以使用 ps 命令结合 grep 来查找它:

kotlin 复制代码
ps -ef | grep data-transport-server-0.0.1-SNAPSHOT.jar

或者,如果您知道进程 ID(PID),您可以直接使用 kill 命令来停止它(如果需要的话):

bash 复制代码
kill PID

Docker常用命令

perl 复制代码
###postgres 是容器名称,根据自己容器来调整
docker ps -a #查看docker中所有容器信息
docker exec -it postgres bash #进入postgres bash 
​
docker stop postgres
docker start postgres
docker restart postgres
docker logs postgres #查看相关日志
docker-compose up -d --build #根据docker-compose.yml,后台启动容器(启动之前自动构建所有需要的镜像)。
ps -ef | grep postgres #查看postgres相关进程
​
docker pull postgres(容器名) #拉取容器
docker rename samba samba_old #重命名容器名称

Samba常用命令

bash 复制代码
# 拉取镜像
docker pull  dperson/samba
​
#比如在10.0.4.33主机上,设置共享目录/home/share 
docker run -it --name samba -p 139:139 -p 445:445 -v /home/share:/mount -d dperson/samba -w "WORKGROUP" -u "share;ABC.123456" -s "share;/mount/;yes;no;no;all;none"
​
#在另一台主机上,映射共享命令,将共享目录10.0.4.33上的/home/share映射到本地/home/RSData
mount -t cifs //10.0.4.33/share /home/RSData -o username=share,password=ABC.123456,domain=WORKGROUP
​
#取消映射
umount /home/RSData

修改文件夹权限

使得远程的映射共享目录主机的用户可删除共享目录中的文件

scss 复制代码
chmod 777 -R share(文件夹路径)

在Java中修改文件夹权限代码

scss 复制代码
/**
     * 修改linux环境下文件权限为777
     *
     * @param filePath 文件全路径
     */
    public static void changeFilePermission777(String filePath) {
        File file = new File(filePath);
        log.info("{} can 1 file.canExecute()={}", filePath, file.canExecute());
​
        //设置权限
        Set<PosixFilePermission> perms = new HashSet<>();
        perms.add(PosixFilePermission.OWNER_READ);
        perms.add(PosixFilePermission.OWNER_WRITE);
        perms.add(PosixFilePermission.OWNER_EXECUTE);
        perms.add(PosixFilePermission.GROUP_READ);
        perms.add(PosixFilePermission.GROUP_WRITE);
        perms.add(PosixFilePermission.GROUP_EXECUTE);
        perms.add(PosixFilePermission.OTHERS_READ);
        perms.add(PosixFilePermission.OTHERS_WRITE);
        perms.add(PosixFilePermission.OTHERS_EXECUTE);
​
        Path path = Paths.get(filePath);
        try {
            Files.walk(path).forEach(
                    p -> {
                        try {
                            Files.setPosixFilePermissions(p, perms);//修改文件的权限
                        } catch (Exception e) {
                            log.error("文件权限修改失败", e);
                        }
                    }
            );
        } catch (IOException e) {
            log.error("文件权限修改失败", e);
        }
        log.info("{} can 2 file.canExecute()={}", path, file.canExecute());
    }
​
相关推荐
柑木32 分钟前
Meld-BeyondCompare开源替代品
后端·程序员·开源
超浪的晨32 分钟前
Java List 集合详解:从基础到实战,掌握 Java 列表操作全貌
java·开发语言·后端·学习·个人开发
超浪的晨37 分钟前
Java Set 集合详解:从基础语法到实战应用,彻底掌握去重与唯一性集合
java·开发语言·后端·学习·个人开发
来自旧金山的勇士1 小时前
WSL->Ubunut安装Redis
后端
大葱白菜1 小时前
Java Set 集合详解:从基础语法到实战应用,彻底掌握去重与唯一性集合
java·后端
大葱白菜1 小时前
Java Map 集合详解:从基础语法到实战应用,彻底掌握键值对数据结构
java·后端
小猪乔治爱打球2 小时前
[Golang修仙之路] 算法专题:回溯(递归)
后端·面试
昵称为空C2 小时前
SpringBoot数据存储时区选择,符合国际化和特定时区方案
spring boot·后端
ldj20203 小时前
SpringBoot为什么使用new RuntimeException() 来获取调用栈?
java·spring boot·后端
超龄超能程序猿3 小时前
Spring 应用中 Swagger 2.0 迁移 OpenAPI 3.0 详解:配置、注解与实践
java·spring boot·后端·spring·spring cloud