我正在尝试更改一个位于Docker容器内部的配置文件。
我需要做的是在将容器部署到服务器之前,将'config.ini' 中的 'URL_BASE =' 替换掉。 我不知道为什么 sed 命令尝试重命名文件,而这并不应该发生。 有什么想法吗? 我的尝试: 我尝试使用 --privileged 标志执行,但没有起作用。我尝试使用 chmod 改变文件权限,但由于权限问题,我无法实现。
docker exec container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini
在本地执行此sed命令完全没有问题,但是当我尝试在容器中执行时,会收到以下错误消息。
sed: cannot rename tmp/config.ini: Operation not permitted
我需要做的是在将容器部署到服务器之前,将'config.ini' 中的 'URL_BASE =' 替换掉。 我不知道为什么 sed 命令尝试重命名文件,而这并不应该发生。 有什么想法吗? 我的尝试: 我尝试使用 --privileged 标志执行,但没有起作用。我尝试使用 chmod 改变文件权限,但由于权限问题,我无法实现。
docker exec --privileged container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini
Result: sed: cannot rename tmp/config.ini: Operation not permitted
Chmod
docker exec --privileged container_name chmod 755 tmp/config.ini
Result: chmod: changing permissions of 'tmp/config.ini': Operation not permitted
我之前也尝试过在使用docker命令之前加上sudo,但是也没有成功。
docker run -it <image> bash
,然后执行sed <...>
。 - n2odocker exec container_name whoami
和docker exec container_name ls -l tmp/config.ini
。 - Nehal J Wani