如何解决docker run和docker-compose的结果不同吗?
我正在使用此映像挂载unionfs文件系统。当我使用docker run
运行容器时,它可以正常工作,但是当我将相同条件放入docker-compose
中时,它不起作用。环境变量似乎有问题(我怀疑)。
docker-compose配置:
unionfs:
container_name: unionfs
image: meyay/unionfs-mount:alpha
environment:
- TZ=Europe/Berlin
- PUID=1000
- GUID=1000
- READ_ONLY_DIR="/read-only/m/ro"
- READ_WRITE_DIR="/read-write/m/rw"
privileged: true
volumes:
- /home/ubuntu/sshfs:/read-write:slave
- /mnt/gdrive:/read-only:slave
- /mnt/unionfs/tvs:/merged:shared
docker-compose up
在容器中给我这个错误:Failed to open /run/s6/services/unionfs/"/read-write/m/rw"/: No such file or directory. Aborting!
如果我使用docker run
运行相同的图像:
docker run --rm \
--name unionfs \
-e TZ="Europe/Berlin" \
-e PUID=1000 \
-e GUID=1000 \
-e READ_ONLY_DIR="/read-only/m/ro" \
-e READ_WRITE_DIR="/read-write/m/rw" \
--privileged \
-v /home/ubuntu/sshfs:/read-write:slave \
-v /mnt/gdrive:/read-only:slave \
-v /mnt/unionfs/tvs:/merged:shared \
meyay/unionfs-mount:alpha
然后将成功安装unionfs挂载。有什么原因会发生这种情况吗?他们都是一样的,对吧?
解决方法
这里的问题是引号,当您在yaml文件中指定变量时,对引号的处理会有所不同。
您需要这样写:
unionfs:
container_name: unionfs
image: meyay/unionfs-mount:alpha
environment:
- TZ=Europe/Berlin
- PUID=1000
- GUID=1000
- "READ_ONLY_DIR=/read-only/m/ro"
- "READ_WRITE_DIR=/read-write/m/rw"
privileged: true
volumes:
- /home/ubuntu/sshfs:/read-write:slave
- /mnt/gdrive:/read-only:slave
- /mnt/unionfs/tvs:/merged:shared
也请参阅this question。
我刚刚在GitHub上找到了this issue。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。