我有一个文件,当我将其挂载到docker时,用户和组将会改变。
root@b2d3cb9b2aab:/# ls -lh /etc/logrotate.d/
total 36K
-rw-r--r-- 1 root root 120 Sep 11 2021 alternatives
-rw-r--r-- 1 root root 173 Feb 22 19:00 apt
-rw-r--r-- 1 root root 130 Oct 14 2019 btmp
-rw-r--r-- 1 root root 112 Sep 11 2021 dpkg
-rw-r--r-- 1 root root 128 May 4 2021 exim4-base
-rw-r--r-- 1 root root 108 May 4 2021 exim4-paniclog
drwxr-xr-x 3 root root 4.0K Jun 14 18:56 home
-rw-r--r-- 1 99005 1000 876 Jun 14 18:40 syslog-ng <<<<<<<<<<<<< this file
-rw-r--r-- 1 root root 145 Oct 14 2019 wtmp
我正在使用 gitlab-ci 运行我的 docker,如下所示:
docker container run -d --restart=always \
--name my-syslogger -p 5514:514/udp -p 601:601 \
-v /data/my-logs:/var/log \
-v $PWD/syslogger/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf \
-v $PWD/syslogger/syslog-ng:/etc/logrotate.d/syslog-ng \
/balabit/syslog-ng
然后我尝试删除“-v $PWD/syslogger/syslog-ng:/etc/logrotate.d/syslog-ng”
然后使用 docker cp 手动复制文件,但结果仍然相同。
docker cp $PWD/syslogger/syslog-ng my-syslogger:/etc/logrotate.d/syslog-ng
然后我想通过下面的命令更改所有者和组,如果我单独运行它们,它是有效的,但我担心它可以与 gitlab-ci 一起使用。
docker exec -it --user root my-syslogger /bin/bash && chown -R root:root /etc/logrotate.d/syslog-ng
您能建议我将该文件所有者更改为 root 的最佳方法吗?
答案1
我设法按照如下方式进行操作:
docker exec -it -d --user root my-syslogger /bin/chown -R root:root /etc/logrotate.d/syslog-ng