这是我的docker撰写文件,我有两个已挂载的卷,每个卷都需要一个不同的用户和组所有者。
version: '3'
services:
mysql:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
container_name: mysql
restart: unless-stopped
ports:
- 3306:3306
user: ${USER_ID}:${GROUP_ID}
volumes:
- "./storage/etc/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf"
- "./storage/var/log/mysql:/var/log/mysql"
phpmyadmin:
image: phpmyadmin:5.1.1
container_name: phpmyadmin
restart: always
ports:
- 8080:80如果我应用这个码头-组成所有这些卷将有相似的用户和组所有者
我希望为每个卷设置一个指定的用户所有者。
发布于 2022-04-05 10:56:38
Docker和Compose都没有任何选项来更改卷或绑定挂载目录中文件的所有权。
将文件和目录挂载到mysql容器中。它们都将拥有主机上的数字用户和组所有者。这些数字in可能存在于容器的/etc/passwd文件中,也可能不存在,但通常并不重要。在Docker中无法更改文件所有权,除非容器以根用户身份运行,并作为启动序列的一部分运行chown(1)。
如果这两件事拥有不同的所有权,那么在启动容器之前,您可能需要在主机上更改这一点。
sudo chown -R "${USER_ID}" ./storage实际上,只要mysqld.cnf文件是可读的,并且容器以$USER_ID作为日志目录的所有者运行,容器可能会成功运行。
https://stackoverflow.com/questions/71748478
复制相似问题