[英]docker - mounted file is empty in container
我有以下docker run
命令,我通过 ssh 从我的 CI 发送(因为当我直接在服务器上尝试它时也会发生问题,我在这里跳过所有 ssh 相关的东西)。
docker run --name amc-node-be -d -p 10.0.0.3:3000:3000 --mount type=bind,source=/etc/amc-node-be/.env,target=/app/dist/amc-node-be/.env,readonly --restart unless-stopped .../amc-node-be:latest
我想这与文件权限有关,但我不太了解主机的权限如何使用绑定安装泄漏到容器,或者我可能不太了解 linux 文件权限。 在主机上,我授予 docker 组对 .env 文件的读取权限。
/etc/amc-node-be$ ls -la
total 12
drwxr-x---+ 2 andymatic docker 4096 Oct 2 10:20 .
drwxr-xr-x 85 root root 4096 Oct 2 12:13 ..
-rwxr-----+ 1 andymatic docker 912 Oct 2 09:40 .env
deploy用户在docker组
$ sudo -u deploy groups
docker
在主机上使用sudo -u deploy cat /etc/amc-node-be/.env
我得到了文件的内容
docker inspect amc-node-be
返回
"Mounts": [
{
"Type": "bind",
"Source": "/etc/amc-node-be/.env",
"Destination": "/app/dist/amc-node-be/.env",
"Mode": "",
"RW": false,
"Propagation": "rprivate"
}
]
任何其他想法我做错了什么?
我认为你应该使用 --env-file 选项:
docker run --env-file=.env --name amc-node-be -d -p 10.0.0.3:3000:3000 --restart unless-stopped .../amc-node-be:latest
使用 env-file 您可以引用文件名,该文件名被解析以提取要设置的环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.