在我的研究中,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因此,在容器中,我们可以看到像/dev/sdb1 on /app type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)一样挂载的/app
是否有某种方法可以在不使用此选项情况下挂载卷?我在文档中进行了搜索,但什么也没有找到
发布于 2019-04-29 19:59:27
大家听好了!解散!
我射中了自己的腿。这个问题是因为我将/home和/var/lib/docker移到了磁盘的专用分区(因为缺少磁盘空间),默认情况下,它们是由带noexec选项的linux挂载的。
Docker只是在容器内部重新转换
https://stackoverflow.com/questions/55902519
复制相似问题