当我侦察时,docker(也包括docker-compose)使用noexec选项将卷安装到容器中,因此我无法从安装目录内部启动任何程序。
services:
app:
build:
context: .
dockerfile: Dockerfile.development
command: sh -c "rm -f tmp/pids/server.pid && /app/bin/rails s -b 0.0.0.0"
env_file:
- .env
ports:
- "3000:3000"
volumes:
- .:/app:cached
因此,在容器内部,我们可以看到/ app已安装
/dev/sdb1 on /app type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)
是否存在某种无需此选项即可挂载卷的方法? 我在文档中进行了搜索,但一无所获
答案 0 :(得分:0)
听所有!关闭!
我拍自己的腿。 这个问题是因为我将/ home和/ var / lib / docker移到了磁盘的专用分区(因为缺少磁盘空间),并且默认情况下它们是由Linux使用noexec选项安装的。
Docker只是在容器内重新翻译了