首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-compose创建目录而不是文件

docker-compose创建目录而不是文件
EN

Stack Overflow用户
提问于 2019-09-10 20:10:36
回答 2查看 8K关注 0票数 9

我试图设置我的家庭服务器(Ubuntu18.04LTS)使用一些码头容器和码头组成。在尝试设置“transmission”时,我得到以下错误:

代码语言:javascript
复制
/usr/local/lib/ruby/2.6.0/psych.rb:577:in `initialize': Is a directory @ io_fillbuf - fd:5 /etc/transmission-rss.conf (Errno::EISDIR)

当我去检查是否已经创建了transmission-rss.conf文件时,一个同名的目录已经被创建了。

我必须使用docker-compose up运行sudo命令,所以我不知道这是否与权限有关。

下面是我当前的docker-compose.yml文件:

代码语言:javascript
复制
version: '3'
services:
  portainer:
    container_name: portainer
    image: portainer/portainer
    volumes:
      - '/home/miguel/docker/portainer/data/:/data'
      - '/home/miguel/docker/portainer/socket/:/var/run/docker.sock'
    ports:
      - "9000:9000"
    restart: always
  transmission-rss:
    container_name: transmission-rss
    image: nning2/transmission-rss:latest
    volumes:
      - '/home/miguel/docker/transmission-rss/transmission-rss.conf/:/etc/transmission-rss.conf/'
    restart: unless-stopped

portainer容器很好地启动。

非常感谢你,米格尔

EN

回答 2

Stack Overflow用户

发布于 2020-11-13 13:09:45

确保文件在双方(主机和容器内部)中都存在

如果其中一个不存在,那么docker 将创建一个目录而不是一个文件

票数 7
EN

Stack Overflow用户

发布于 2019-09-11 07:11:32

- '/home/miguel/docker/transmission-rss/transmission-rss.conf/:/etc/transmission-rss.conf/'

请删除尾随斜杠(有2x!)并确保transmission-rss.conf是一个文件,而不是主机源上的dir。

稍微全面一点:

  1. 遵循这一点,以避免不得不将sudo与docker - https://docs.docker.com/install/linux/linux-postinstallhttps://docs.docker.com/install/linux/linux-postinstall一起使用(这不是问题的原因,但必须使用sudo对每个命令进行前缀,基本上只需要将用户添加到停靠组中,这是很烦人的)。
  2. 更新docker-compose.yml,从transmission-rss.conf的源和目标中删除尾随斜杠。
  3. 如果需要,在备份数据后删除现有卷(docker volume ls + docker volume rm volume_name)。
  4. 在您的主机(运行docker-compose命令的机器)上,确保文件存在,并且不是是一个目录。
  5. docker-compose down
  6. docker-compose build
  7. docker-compose up
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57877600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档