基于“基于dockerhub的jetty镜像的ossfs镜像”部署war包,遇到的文件夹读写权限被限制的问题解决方案
前提:
“基于dockerhub的jetty镜像的ossfs镜像” 已经搭建好了。
部署准备:
1、本地打包:war包--》idea工具 mvn 打包。
2、本地sh脚本:compile_vps_deplay.sh
#!/bin/bash date=`date +"%Y%m%d%H%M"` scp bbkjweb.war zjm@10.248.248.12:~/webrz/basic/renzheng/ ssh zjm@10.248.248.12 -t " cd ~/webrz/basic/renzheng/ jar -xvf bbkjweb.war ./build.sh sudo docker images sudo docker ps sudo docker rm -f web_rz ./runwebrz.sh " cd -
这里是直接先解压了,因为,ossfs要绑定同步的目录。而我的同步的文件夹在war包里面。
3、vps上sh文件:~/webrz/basic/renzheng/build.sh
#!/bin/bash
sudo docker build --rm -f Dockerfile -t webrz_rz .
4、vps上sh文件:~/webrz/basic/renzheng/./runwebrz.sh
#!/bin/bash
docker run --privileged --name web_rz -d -p 8006:8080 -p 433:8433 webrz_rz
5、vps上Dockerfile 文件:Dockerfile
FROM jetty_apt_ossfs:v3
RUN mkdir -p /var/lib/jetty/webapps/root
COPY bbkjweb /var/lib/jetty/webapps/root
COPY ossfs_conf.sh /var/lib/jetty/webapps
RUN mkdir -p /data/tmp
RUN mkdir -p /data/logs
这里要加上权限参数:--privileged。
ossfs_conf.sh文件:
最后文件目录如下:
部署开始:
本地shell 里面执行:./compile_vps_deplay.sh即可。
最后部署成功:
开启ossfs遇到的问题:
1、先看看阿里配置文档:
我这里把他写成了一个脚本(就是上面的ossfs_conf.sh),容器启动之后进入容器执行即可。
在文档中可以看到,对于要同步的文件进行了所有者的修改;不然会有文件夹写权限不够的问题。导致无法使用ossfs。
2、进入容器中:
#docker exec -it web_rz bash
#ls -al /var/lib/jetty/webapps/root/statics/uploadstart
执行 ossfs_conf.sh:
然后以jetty用户挂载要同步的目录:
su jetty
ossfs -o nonempty my-buket /var/lib/jetty/webapps/root/statics/uploadstart -ourl=http://oss-cn-hangzhou.aliyuncs.com
ossfs -o nonempty my-buket /var/lib/jetty/webapps/root/ueditor/jsp/upload -ourl=http://oss-cn-hangzhou.aliyuncs.com
我这里挂载了两个要同步的目录。
至此,ossfs就可以同步上传文件了。