Dockerdocker应用程序不会从卷中看到文件
我有两个dockerized应用程序和额外的容器:
-
dbdata
卷容器有一个卷:/home/git/data
- dockerized Gitlab – 使用
--volumes-from dbdata
以从卷容器装载卷, - 我自己的应用程序https://github.com/tunguski/gitlab-java-event-listener – 使用
--volumes-from dbdata
以从卷容器( Dockerfile )装入卷。
我的应用程序试图从/home/git/data/repositories
克隆git /home/git/data/repositories
。 这个目录由gitlab容器的用户git
拥有。 但添加后
RUN groupadd --gid 1000 git && usermod -a -G git jetty
到Dockerfile,用户码看到它的文件。 我testing了它执行su - jetty
和ls -la /home/git/data/repositories
。
JGit报告/home/git/data/repositories/<user>/<repo.git>
不存在。 我修改了应用程序来logging实际存在的父目录,它是/home/git/data/repositories
。 我的Java应用程序没有看到任何子目录。
但是,当我连接到我的应用程序的容器使用:
docker exec -it my-app bash
将用户更改为docker:
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[...]
我真的不知道这里有什么问题。
你知道这可能是什么原因吗?