如何在 gitlab-ci 中的 docker 中更改文件的用户和组

如何在 gitlab-ci 中的 docker 中更改文件的用户和组

我有一个文件,当我将其挂载到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

相关内容