我有两个dockerized应用程序和附加的卷容器:
dbdata
]卷容器有一个卷:/home/git/data
--volumes-from dbdata
以从卷容器装载卷,]--volumes-from dbdata
运行以从卷容器(Dockerfile)装载卷。我的应用程序尝试从/home/git/data/repositories
复制git存储库。该目录归gitlab容器中的用户git
拥有。但添加后
RUN groupadd --gid 1000 git && usermod -a -G git jetty
对于Dockerfile,用户jetty
在其中看到文件。我已经测试过它执行su - jetty
和ls -la /home/git/data/repositories
。
JGit报告/home/git/data/repositories/<user>/<repo.git>
不存在。我修改了应用程序以记录实际存在的父目录,它是/home/git/data/repositories
。我的Java应用程序看不到任何子目录。
但是当我使用以下方式连接到应用的容器时:
docker exec -it my-app bash
将用户更改为码头:
su - jetty
然后列出目录:
ls -la /home/git/data/repositories/<user>/<repo.git>
显示该存储库存在!
确认服务器在该特定用户上运行:
$ ps auxwf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 72 0.0 0.0 21920 3556 ? Ss 13:54 0:00 bash
root 77 0.0 0.0 46432 2920 ? S 13:54 0:00 \_ su - jetty
jetty 78 0.0 0.0 4328 700 ? S 13:54 0:00 \_ -su
jetty 81 0.0 0.0 17488 2072 ? R+ 13:54 0:00 \_ ps auxwf
jetty 1 0.5 5.7 5627056 464960 ? Ssl 12:56 0:18 /usr/bin/java -Djetty.logging.dir=/usr/local/jetty/logs -Djetty.home=/usr/local/jetty -Djetty.base=/var/lib/jetty -Djava.io.tmpdir=/tmp/jett[...]
我真的不知道这里出了什么问题。
您知道这可能是什么原因吗?