基于“基于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就可以同步上传文件了。

 

posted @ 2016-11-22 14:29  Enast  阅读(1030)  评论(0编辑  收藏  举报